2011-02-14 7 views
1

SourcePreのオートコマンドがトリガされたときに、ファイル名をソースに渡す方法がありますか?VIM:SourcePre autocommand内からソースに渡されたファイル名?

例:

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 

私が調達されているファイルの名前を取得するために"minibufexpl.vim_-_Elegant_buffer_explorer"

答えて

2

使用<afile>でこれ{INSERT-Plugin-Dir-Name}を交換したいと思います。 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

関連する問題