вызывать функцию в vim при открытии файла с определенным именем, игнорируя каталоги (регулярное выражение в качестве переменной) - PullRequest
2 голосов
/ 01 июля 2011

я пытаюсь проверить vim на имя файла, который он собирается открыть

if @%== .\+"notes.tex"
  highlight done ctermbg=blue ctermfg=white guibg=#292960 guifg=#AAAAAA
  match done /.\+itemize.\+/
endif

Мне бы хотелось, чтобы этот скрипт работал с файлом notes.tex независимо от каталога. причина, по которой я пу. + перед заметками, заключается в том, что я хочу сопоставить все предыдущие символы в имени файла

другими словами, я хочу, чтобы соответствовать "notes.tex" и "../notes.tex"

1 Ответ

1 голос
/ 01 июля 2011

Я думаю, вам лучше использовать функцию expand("%") для чтения имени файла, а затем использовать matchstr() для проверки:

if matchstr(expand("%"),"notes\.tex$") != ""
  highlight done ctermbg=blue ctermfg=white guibg=#292960 guifg=#AAAAAA
  match done /.\+itemize.\+/
endif

Обратите внимание на $ в matchstr оператор: так что это соответствует "notes.tex", только если он находится в самом конце строки.

Приятно, что этот подход заключается в том, что он не заботится о направлении косой черты (\или /) и поэтому должны быть независимыми от платформы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...