2010-03-01 6 views
3

я редактирую файл как
/path/to/file.txt
с Vim, следовательно, текущий каталог
/path/to.Каков самый элегантный способ работы с исходными файлами, которые являются исходными (относительными) исходными файлами в VIM?

Теперь у меня есть каталог
/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 в папку vim's plugin.

ответ

5

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

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

Затем используйте: вместо выполнения: источник в файле sourceA.vim:

runtime lib/sourceB.vim 

Вы можете использовать то же ": so /../../../sourceA.vim" как раньше ...

+0

Работал отлично для меня! Благодаря! – John