Лучший способ организовать настройки FileType в .VIM и .VIMRC?

StackOverflow https://stackoverflow.com/questions/2889766

  •  04-10-2019
  •  | 
  •  

Вопрос

Я прохожу через мою Vim dotFiles, чтобы привести их. Я заметил, что через время я добавил различные специфические настройки FileType в различных противоречивых способах. Допустим, я настраиваю для 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 Файл с определенными настройками FileType. Я понимаю $VIMRUNTIME/ftplugin/python.vim Можете переопределить любые настройки, которые я здесь зарабатываю. Одна проблема в том, что я не уверен, как это взаимодействует с .vim/filetype.vim а также .vim/after/filetype.vim.

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

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

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

Это было полезно?

Решение

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

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

Если вы хотите переоценивать что за ftpluginс вашим распределением VIM настроен, затем $HOME/.vim/after/ftplugin/python.vim это то, что вы хотите, как это читается after эти.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top