2011-02-14 42 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

相關問題