我正在使用Vim来读取man,并且试图在vimrc中设置一个脚本,除非我从手册页中进行读取,否则它将显示NERDTree。
我在vimrc中有以下内容:
" 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
当我正常运行vim时,它可以按预期工作:
andrey@Andrey-P:~$ vim file.txt
manpath is: /usr/local/man:/usr/local/share/man:/usr/share/man
path is: /home/andrey
match: -1
但是,打开手册页将返回以下内容:
andrey@Andrey-P:~$ man vim
manpath is: /usr/local/man:/usr/local/share/man:/usr/share/man
path is: /usr/share/man
match: -1
有人希望这是一个相当简单的匹配,但是似乎没有用。有人可以帮忙吗?
最佳答案
看来您有错误的方法来传递match()
的参数。第一个参数应该是要搜索的表达式(在您的情况下为$MANPATH
),第二个参数应该是搜索模式。
有关功能的完整说明,请参见:help match()
。