Пожалуйста, объясните иерархию каталогов конфигурации Vim
Я пытаюсь обновить сценарии конфигурации Vim
. В моем каталоге ~/.vim
есть несколько подкаталогов, и я не уверен, что они делают, и почему есть некоторые, которые кажутся избыточными.
Вот как выглядит дерево каталогов ~/.vim
|-after
|---ftplugin
|---syntax
|-autoload
|-compiler
|-doc
|-ftplugin
|---latex-suite
|-----dictionaries
|-----macros
|-----packages
|-----templates
|---python
|-indent
|-plugin
|-spell
|-syntax
Теперь для конкретных вопросов.
- Что происходит в
plugin
vs ftplugin
?
- В чем разница между
plugin
и autoload
?
- Когда мне нужно помещать что-то в
after/...
, а не в каталоги непосредственно под ~/.vim
?
Ответы
Ответ 1
Все, что входит в plugin
, загружается всякий раз, когда запускается vim, а то, что вы помещаете в ftplugin
, загружается только для определенного типа файла, которому это соответствует (так что если у вас есть папка с именем python, все файлы будут загружены, когда вы открываете файл python.
В autoload
у вас должны быть функции, соответствующие сценариям, определенным в plugin
. Функции здесь будут загружаться только при вызове в первый раз.
В after
вы должны поместить настройки, которые вы хотите изменить, от обычной загрузки плагинов.
В качестве примера предположим, что вам нравятся настройки, которые дает какой-то плагин для латекса, но он переопределил сопоставление, которое у вас было в вашем .vimrc
. Вы можете вернуть это с помощью автокоманд или путем правильного определения правильных определений.
Ответ 2
Я думаю, что это точно объясняет, что делает каждая папка: http://learnvimscriptthehardway.stevelosh.com/chapters/42.html
Также возможно проверить :h runtimepath
.
Надеюсь, это поможет.:)
Ответ 3
Все эти каталоги являются частью runtimepath
. Попробуйте :h runtimepath
, и он свяжет вас с вашими ответами:
- Отметьте
:h write-plugin
- Проверьте
:h autoload-functions
-
after/...
скрипты выполняются последними, поэтому они могут переопределять настройки предыдущих скриптов. Подробнее об этом можно узнать в :h runtimepath
.