2010-05-22 2 views
44

Я прохожу через свои виртуальные домены, чтобы их убирать. Я заметил, что со временем я добавил различные специфические параметры типа файла различными непоследовательными способами. Давайте предположим, что я настройки для Python:Лучший способ организовать настройки типа файлов в .vim и .vimrc?

  • 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 по той же причине.

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

ответ

63

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

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

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

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

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

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

+18

Просто хочу добавить здесь примечание, что не все ваши настройки должны быть в одном файле для типа файла, они могут находиться в каталоге с именем после файла. У меня есть настройки python (и плагины, специфичные для python) в .vim/ftplugin/python/{pydoc.vim, python.vim и т. Д.} –

+2

+1: Отличная точка, если у вас есть много разных настроек для данного типа файлов, это очень аккуратный способ их организовать. – Johnsyweb

+0

Если вы сохраняете свои файлы с точками в исходном коде, это упрощает сохранение всех ваших точечных файлов в актуальном состоянии. – Johnsyweb

Смежные вопросы