Пожалуйста, объясните иерархию каталогов конфигурации Vim

Я пытаюсь обновить свои сценарии конфигурации Vim. В моем каталоге ~/.vim есть несколько подкаталогов, и я не уверен ни в том, что они делают, ни в том, почему некоторые из них кажутся избыточными.

Вот как выглядит мое дерево каталогов ~/.vim

 |-after
 |---ftplugin
 |---syntax
 |-autoload
 |-compiler
 |-doc
 |-ftplugin
 |---latex-suite
 |-----dictionaries
 |-----macros
 |-----packages
 |-----templates
 |---python
 |-indent
 |-plugin
 |-spell
 |-syntax

Теперь по конкретным вопросам.

  1. Что идет в plugin против ftplugin?
  2. В чем разница между plugin и autoload?
  3. Когда я должен помещать что-то в after/..., а не в каталоги непосредственно под ~/.vim?

person jlconlin    schedule 09.01.2013    source источник


Ответы (3)


Все, что входит в plugin, загружается всякий раз, когда запускается vim, тогда как то, что вы помещаете в ftplugin, загружается только для определенного типа файла, которому оно соответствует (поэтому, если у вас есть папка с именем python, все файлы там будут загружены при открытии файла python. В autoload у вас должны быть функции, соответствующие сценариям, определенным в plugin.Функции здесь будут загружаться только при первом вызове.

В after вы должны указать настройки, которые вы хотите изменить при обычной загрузке плагина. В качестве примера предположим, что вам нравятся настройки, которые дает вам какой-то плагин для латекса, но он переопределил сопоставление, которое у вас было в вашем .vimrc. Вы можете отменить это с помощью автокоманд или вставив правильные определения после.

person skeept    schedule 09.01.2013
comment
Спасибо @skeept. Если я правильно понимаю, поместите основные плагины в plugin или ftplugin, поддерживающие вещи в autoload и прочее, чтобы переопределить все остальное в after. Правильный? - person jlconlin; 10.01.2013
comment
Если вы делаете что-то, что относится к определенному типу файлов, вам следует использовать ftplugin. Для чего-то, что относится ко всем типам файлов, поместите в плагин, но, если возможно, попробуйте загрузить его в автозагрузку, и да, все, что находится после, переопределяет все остальное. Я думаю, что ссылка, предоставленная Эдуаном в ответе, является хорошим ресурсом, вам следует ее прочитать. - person skeept; 10.01.2013

Все эти каталоги являются частью runtimepath. Попробуйте :h runtimepath, и он свяжет вас с вашими ответами:

  1. Проверить :h write-plugin
  2. Проверить :h autoload-functions
  3. after/... скрипты выполняются последними, поэтому они могут переопределить настройки более ранних скриптов. Подробнее об этом можно прочитать в :h runtimepath.
person Daan Bakker    schedule 09.01.2013
comment
Мне также нравится этот ответ, потому что он показывает встроенную справку Vim, чтобы увидеть, как написать плагин и структурировать его. - person FilBot3; 19.11.2018