Каков самый элегантный способ работы с исходными (относительными) исходными файлами в VIM? - PullRequest
3 голосов
/ 01 марта 2010

Я редактирую файл как
/path/to/file.txt
с vim, следовательно, текущий каталог
/path/to.

Теперь у меня есть каталог
/other/path/to/vim/files
который содержит sourceA.vim. Также в
есть файл sourceB.vim /other/path/to/vim/files/lib/sourceB.vim

В sourceA.vim я хочу получить sourceB.vim, поэтому я поставил
so lib/sourceB.vim
в это.

Теперь в моем файле file.txt я делаю
:so /other/path/to/vim/files/sourceA.vim
что не удается, потому что система поиска, очевидно, не подготовлена ​​для относительных имен путей наряду с поиском из другого каталога.

Чтобы это исправить, я поставил
execute "so " . expand("<sfile>:p:h") . "/lib/sourceB.vim"
в sourceA.vim, который делает то, что я хочу.

Однако я нахожу решение немного неуклюжим, и мне было интересно, есть ли для него более элегантное решение.

Я не могу поместить sourceA.vim и sourceB.vim в папку plugin vim.

1 Ответ

5 голосов
/ 09 марта 2010

Может быть, вы могли бы изменить ваш путь выполнения в вашем vimrc или в другом месте:

set runtimepath+=/other/path/to/vim/files

Затем используйте: runtime вместо: source в вашем файле sourceA.vim:

runtime lib/sourceB.vim

Затем можно использовать ту же команду ": so /../../../sourceA.vim", что и раньше ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...