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

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

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

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

теперь для конкретных вопросов.

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

3 ответов


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

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


Я думаю, что это точно объяснит, что делает каждая папка:http://learnvimscriptthehardway.stevelosh.com/chapters/42.html

также, возможно, захотите, чтобы проверить :h runtimepath.

надеюсь, что это помогает. :)


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

  1. Регистрация :h write-plugin
  2. Регистрация :h autoload-functions
  3. after/... скрипты выполняются последними, поэтому они могут переопределять настройки предыдущих скриптов. Вы можете узнать больше об этом в :h runtimepath.