Сравнение строк в Vimscript - PullRequest
       19

Сравнение строк в Vimscript

3 голосов
/ 24 января 2012

Я использую Vim для чтения man, и я пытаюсь установить скрипт в моем vimrc, который будет отображать NERDTree, если я не читаю со страницы man.

У меня есть следующеев 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

Можно было бы ожидать, что это будет довольно простой матч, но, похоже, это не сработает.Кто-нибудь может помочь?

1 Ответ

3 голосов
/ 24 января 2012

Похоже, у вас есть аргументы для match() неправильным путем. Первый аргумент должен быть выражением для поиска ($MANPATH в вашем случае), а второй аргумент должен быть шаблоном поиска.

См. :help match() для полного описания функции.

...