Лучший способ организовать настройки типа файла в .vim и .vimrc?

Я прохожу свою энергию dotfiles для уборки их. Я заметил, что в течение времени добавил различный тип файла определенные настройки различными непоследовательными способами. Давайте предположим, что я настраиваю для Python:

  • au BufRead,BufNewFile *.py (do something). Мне не нравится это, потому что некоторые файлы Python не могли бы иметь .py завершения.

  • au FileType python (do something). Это кажется более оптимальным вариантом, потому что он не зависит от файла, имеющего .py завершение. Недостаток состоит в том, что Vim не знает о некоторых типах файлов. Я могу заставить Vim распознать дополнительные типы файлов, но у меня также есть различные непоследовательные способы сделать его: a .vim/filetype.vim файл, другой в .vim/after/filetype.vim и различный set filetype команды в .vimrc.

  • Добавьте a .vim/ftplugin/python.vim файл с типом файла определенные настройки. Я понимаю $VIMRUNTIME/ftplugin/python.vim может переопределить любые настройки, которые я устанавливаю здесь. Одна проблема состоит в том, что я не уверен, как это взаимодействует с .vim/filetype.vim и .vim/after/filetype.vim.

  • Добавьте a .vim/after/ftplugin/python.vim. Я понимаю, что это загружается после $VIMRUNTIME/ftplugin/python.vim таким образом, это может перезаписать настройки оттуда. Как в предыдущем методе я не уверен, как он взаимодействует с filetype.vim файлы.

Таким образом, у меня есть по крайней мере четыре способа сделать это, не упоминая файлы синтаксиса и определенные для типа файла плагины. Это кажется мне лучшим способом сделать, это должно поместить мой тип файла определенные настройки в after/ftplugin таким образом, они не становятся перезаписанными, и filetypes.vim в after по той же причине.

Однако, прежде чем я продолжаю двигаться, я хотел бы спросить, есть ли у кого-либо предложения о лучшем способе иметь дело с типом файла определенные настройки.

45
задан Koraktor 17 January 2013 в 06:25
поделиться

1 ответ

Я храню свои специфические для Python настройки в $HOME/.vim/ftplugin/python.vim, поскольку я не делаю ничего, что могло бы конфликтовать с $VIMRUNTIME/ftplugin/python.vim.

Храня эти настройки в ftplugin -файле, мой .vimrc - хороший и общий, и его легче поддерживать (он все еще довольно большой после более чем десяти лет использования Vim).

Если вы хотите отменить то, что ftpluginы с вашим дистрибутивом Vim настроены, то $HOME/.vim/after/ftplugin/python.vim - это то, что вам нужно, так как он читается после этих.

Аналогично $HOME/.vim/filetype.vim будет проброшен перед $VIMRUNTIME/filetype.vim, а тот в свою очередь будет проброшен перед $HOME/.vim/after/filetype.vim.

Вызов :scriptnames выведет список всех имен скриптов в том порядке, в котором они были впервые использованы.

:help filetype предоставляет довольно полную информацию обо всем этом.

66
ответ дан 26 November 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: