- Да. Хотя я не понимаю, почему вы используете каталог vimrc.d и:runtime в вашем vimrc вместо того, чтобы просто сбрасывать файлы в каталог плагинов и позволять Vim автоматически выполнять:runtime.
- Автозагрузочные плагины обычно разбиты на два файла: файл кода интерфейса, который входит в каталог плагинов, и файл кода выполнения, который входит в каталог автозагрузки. Файл кода интерфейса всегда загружается и должен быть скудным. Обычно он содержит команды и / или макросы, которые вызывают функции, определенные в файле кода выполнения. Файл кода выполнения не загружается до тех пор, пока не получен доступ к одному из определяемых им объектов (например, функция или переменная), и он еще не определен. Если вы запускаете файлы автозагрузки / кода выполнения из вашего vimrc, вы победили цель автозагрузки файлов.
Вам нужно поместить файлы с автозагрузкой в каталог автозагрузки, который является подкаталогом одного из компонентов вашего «runtimepath». Если вы не хотите использовать стандартный каталог ~/.vimrc/autoload (в Unix) или ~/vimfiles/autoload (в Windows), вам необходимо убедиться, что родительский каталог вашего каталога автозагрузки находится в 'runtimepath ».
Тогда не имеет значения, действительно ли вы:
- Сделайте так, как вы сделали, и поместите файлы кода интерфейса в каталог vimrc.d и запустите их самостоятельно из вашего vimrc;
- Добавьте каталог vimrc.d в ваш путь выполнения, переместите файлы кода интерфейса в новый подкаталог vimrc.d/plugin и дайте Vim запустить их для вас; или же
- Просто поместите файлы кода интерфейса в стандартную директорию ~/.vim/plugin или ~/vimfiles/plugin и обойдитесь без vimrc.d и пути:runtime в вашем vimrc.
Если вы действительно хотите хранить свои вещи вне стандартных мест и в одном каталоге, я полагаю, вы могли бы сделать это (предполагая Unix для удобства).
- Создайте две новые директории, ~/.vim/vimrc.d/autoload и ~/.vim/vimrc.d/plugin.
- Разделите ваши существующие сценарии на части кода интерфейса и кода выполнения и поместите их в эти каталоги, не оставляя файлов сценариев в ~/.vim/vimrc.d.
- Удалите:runtime из вашего vimrc.
В вашем vimrc добавьте ~/.vim/vimrc.d в ваш путь выполнения, например:
set rtp^=~/.vim/vimrc.d
Для справки, автоматически загружаемые скрипты обсуждаются в
:help 41.15
:help autoload-functions