4

Некоторые функции зависят от типа файла, и мне интересно, как лучше организовать эти функции. Должен ли я определить их в ftplugin как локальные функции скрипта или поместить все в autoload?

2 ответа2

6

Это зависит.

Во-первых, будьте прагматичны. Если это просто короткая функция, и она используется только локально, у меня нет никаких сомнений в том, чтобы поместить их непосредственно в мой ~/.vimrc или в ~/.vim/ftplugin/*.vim . Последнее несколько неэффективно, потому что функция переопределяется для каждого открытого файла, который имеет тот же тип файла.

Вы уже знаете о функциях автозагрузки, и, конечно, это каноническое место для размещения пользовательских функций. Догматики будут настаивать на том, что (ft-) плагины содержат только конфигурацию, сопоставления, пользовательские команды и :autocmd , а все функции должны быть помещены в ~/.vim/autoload/ . Я бы порекомендовал это для любой более длинной функции (или наборов функций, вызывающих друг друга) или всего, что вы собираетесь опубликовать, для повторного использования кем-то другим.

Для плагинов файловых типов я принял соглашение о размещении таких функций в ~/.vim/autoload/ft/{filetype}.vim или ~/.vim/autoload/ft/{filetype}/{submodule}.vim .

0

Это личное предпочтение. Мне нравится создавать файлы конфигурации vim, чтобы они были как можно более модульными. Я склонен разбивать похожие разделы и размещать их в отдельных файлах, чем исходный .vimrc .

Вы можете взглянуть на пример из моей личной коллекции dotfile

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .