Лучший способ организовать настройки файла в .vim и .vimrc?
Я просматриваю свои виртуальные файлы, чтобы их убирать. Я заметил, что со временем я добавил различные специфические параметры типа файла различными непоследовательными способами. Предположим, что я настраиваю Python:
-
au BufRead,BufNewFile *.py (do something)
. Мне это не нравится, потому что некоторые файлы Python могут не иметь завершения .py.
-
au FileType python (do something)
. Это кажется лучшим вариантом, поскольку он не зависит от файла с завершением .py. Недостатком является то, что Vim не знает о некоторых типах файлов. Я могу заставить Vim распознавать дополнительные типы файлов, но у меня также есть различные непоследовательные способы сделать это: файл .vim/filetype.vim
, другой в .vim/after/filetype.vim
и различные команды set filetype
в .vimrc
.
-
Добавьте файл .vim/ftplugin/python.vim
с конкретными настройками типа файла. Я понимаю, что $VIMRUNTIME/ftplugin/python.vim
может переопределить все настройки, которые я здесь делаю. Одна из проблем заключается в том, что я не уверен, как это взаимодействует с .vim/filetype.vim
и .vim/after/filetype.vim
.
-
Добавьте .vim/after/ftplugin/python.vim
. Я понимаю, что это загружается после $VIMRUNTIME/ftplugin/python.vim
, чтобы он мог перезаписать настройки. Как и в предыдущем методе, я не уверен, как он взаимодействует с файлами filetype.vim
.
Итак, у меня есть по крайней мере четыре способа сделать это, не говоря уже о синтаксических файлах и специфичных для типа файлов плагинах. Мне кажется, что лучший способ сделать это - установить конкретные параметры файла в after/ftplugin
, чтобы они не перезаписывались, и filetypes.vim
в after
по той же причине.
Однако, прежде чем продолжить, я хотел бы спросить, есть ли у кого-нибудь предложения о наилучшем способе работы с конкретными настройками типа файла.
Ответы
Ответ 1
Я сохраняю настройки, специфичные для Python, в $HOME/.vim/ftplugin/python.vim
, так как я ничего не могу противопоставить $VIMRUNTIME/ftplugin/python.vim
.
Сохранение этих параметров в файле ftplugin
сохраняет my .vimrc
приятный и общий и более простой в обслуживании (он все еще довольно большой после более чем десяти лет использования Vim).
Если вы хотите overrule, то что ftplugin
с вашим распределением Vim настроено, тогда $HOME/.vim/after/ftplugin/python.vim
- это то, что вы хотите, так как он читается after
.
Аналогично $HOME/.vim/filetype.vim
будет получен до $VIMRUNTIME/filetype.vim
, и это, в свою очередь, будет получено до $HOME/.vim/after/filetype.vim
.
Вызов :scriptnames
будет содержать список всех названных источников script в том порядке, в котором они были сначала получены.
:help filetype
предоставляет довольно полную информацию обо всем этом.