2011-02-14 36 views
1

当SourcePre自动命令被触发时,是否有某种方法可以读取传递给源代码的文件名?VIM:从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"

回答

2

使用<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-& 
+0

酷!谢谢! – Paleywiener

相关问题