Специальный путь к файлам подкачки vim для файлов в определенном месте

Из-за моей конфигурации vim хранит файлы подкачки в том же каталоге, что и отредактированный файл. В целом все ок, но не в папке ~/ftp_mount (и во всех каталогах ниже). В этом каталоге я монтирую ftp-сервер.

С

:set dir=/некоторые/путь

можно изменить расположение, в котором vim хранит файлы подкачки (документация vim). Можно ли ограничить эту конфигурацию ~/ftp_mount и всеми каталогами ниже?


person user3041714    schedule 31.08.2014    source источник


Ответы (2)


Как насчет использования autocmd в каталоге, к которому вы хотите применить этот параметр (~/ftp_mount)

autocmd BufNewFile,BufRead ~/ftp_mount/* set dir=/some/path
person Zach    schedule 31.08.2014
comment
Было бы здорово, если бы это сработало, но похоже, что autocmd происходит после установки файла подкачки. Вы можете увидеть это, взглянув на значение :set directory (которое имеет значение, установленное автокомандой) и значение :swapname (которое имеет значение, соответствующее значению по умолчанию directory). (редактировать) Ответ довольно старый, возможно, поведение изменилось в более поздней версии Vim? - person Steve Bennett; 24.08.2017

Отключение файла подкачки, настройка каталога и включение его обратно работает:

  autocmd BufNewFile,BufReadPre *
        \ setl noswapfile noundofile |
        \ if expand('%:p') =~ "/my/custom/path" |
        \   setl undodir=. directory=. |
        \ else |
        \   setl undodir=~/.cache/nvim/undo directory=~/.cache/nvim/swap |
        \ endif |
        \ setl swapfile undofile

Я сопоставляю *, а не конкретно мой путь, потому что я хочу, чтобы он работал, если я:

  1. Откройте файл по моему пользовательскому пути.
  2. Загрузите новый файл из другого места.
person sencer    schedule 27.09.2020