Я экспериментирую с опцией скрытия синтаксиса Vim, надеясь внести свой вклад в vim-lambdify. Тем не менее, я вижу (на мой взгляд) неожиданное поведение при попытке передать регулярное выражение на syntax match
.Соответствие синтаксису vim regex не работает как ожидалось
При задании следующих в моем .vimrc
execute "syntax match myOperator /foo\(bar\)\@=/ conceal cchar=*"
execute "hi link myOperator mySpecialOperator"
execute "hi! link Conceal mySpecialOperator"
setlocal conceallevel=1
setlocal concealcursor=c
Я не вижу foo
скрыты при открытии следующего файла:
foo
foob
foobar
Я пробовал много перестановок этого регулярное выражение: побег ничего/все, обертывая его одиночными/двойными кавычками и т. д. безрезультатно.
Я пропустил что-то очевидное? Я не понимаю, как должны работать синтаксис/совпадение/сокрытие?
Почему вы используете exec? Удаление exec все равно сделало бы команду работать ... – FDinoff
В первой строке использование выполнения с двойными кавычками неверно, потому что обратная косая черта интерпретируется, вы должны использовать одинарные кавычки или помещать несколько двойных обратных косых черт или удалять 'execute' – yolenoyer
К сожалению, [плагин] (https://github.com/calebsmith/vim-lambdify/blob/master/autoload/vimlambdify.vim#L27) Я заинтересован в расширении использования синтаксического соответствия 'execute '..." ' , – pdoherty926