VIM: имя файла передается источнику из автокоманды SourcePre? - PullRequest
1 голос
/ 14 февраля 2011

Есть ли какой-нибудь способ, которым я могу прочитать имя файла, которое передается источнику, когда запускается автокоманда SourcePre?

например:

au SourcePre */plugin/*.vim set runtimepath=/usr/share/vim/vim71/{INSERT-Plugin-Dir-Name}
source /root/.vim/bundle/minibufexpl.vim_-_Elegant_buffer_explorer/plugin/minibufexpl.vim

Я хотел бы заменить это{INSERT-Plugin-Dir-Name} с "minibufexpl.vim_-_Elegant_buffer_explorer"

1 Ответ

2 голосов
/ 14 февраля 2011

Используйте <afile>, чтобы получить имя источника файла.Вы можете использовать expand(), чтобы превратить его в полный путь и получить нужный бит.Например, в вашей строке:

source /root/.vim/bundle/minibufexpl.vim_-_Elegant_buffer_explorer/plugin/minibufexpl.vim

Вы можете сделать:

expand('<afile>:p:h:h')

:p превращает его в полный путь (в случае, если вы cd /path/to/plugin, :source filename.vim);каждый :h убирает одну часть пути с конца.

Обратите внимание, что в строке :set это не будет работать.Вместо этого используйте :let-&:

let &runtimepath='/usr/share/vim/vim71/' . expand('<afile>:p:h:h>')

См .:

:help SourcePre
:help expand()
:help :let-&
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...