2012-01-24 5 views
2

私はVimを使って人を読んでいます。私はmanページから読んでいない限り、NimDTreeを表示するスクリプトをvimrcに設定しようとしています。私はのvimrcに以下の持っているVimscriptでの文字列の比較

:私は、通常のvimを実行すると

" This is needed because $MANPATH wasn't set in my environment  
let $MANPATH=substitute(system("manpath"),"\n","","") 

if (match(expand("%:p:h"),$MANPATH) == -1) 
    echo ("manpath is: ".$MANPATH) 
    echo ("path is: ".expand("%:p:h")) 
    echo ("match: ".match(expand("%:p:h"),$MANPATH)) 
    " Load NERDTree here 
endif 

、それが期待どおりに動作:

[email protected]:~$ vim file.txt 
manpath is: /usr/local/man:/usr/local/share/man:/usr/share/man 
path is: /home/andrey 
match: -1 

をしかし、manページに戻りを開くこの:

[email protected]:~$ man vim 
manpath is: /usr/local/man:/usr/local/share/man:/usr/share/man 
path is: /usr/share/man 
match: -1 

これはかなり簡単に一致すると予想されますが、うまくいかないようです。誰も助けることができますか?

答えて

2

match()の引数が間違っているようです。最初の引数は検索する式($MANPATH)とし、2番目の引数は検索パターンにする必要があります。

機能の詳細については、:help match()を参照してください。

+0

です。すべての文字列比較関数が逆である言語を使用しています - これはまだ言い訳ではありません。ご協力ありがとうございました! – Andrey

+0

問題はありません - それは簡単です! –