我正在使用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()

10-06 08:54