Vim语法突出显示:使用正则表达式突出显示`self`python关键字
我试图在vim中定制python的语法高亮显示。我想突出显示关键字Vim语法突出显示:使用正则表达式突出显示`self`python关键字,python,regex,vim,vi,macvim,Python,Regex,Vim,Vi,Macvim,我试图在vim中定制python的语法高亮显示。我想突出显示关键字self,但仅当它后跟时。下面是我想出的代码: syn match pythonBoolean "\(\Wself\)\%(\.\)" 不幸的是,也会突出显示,尽管我使用了一个非捕获组\%(\.\) 有什么想法吗?用它怎么样?在通用正则表达式语法中,self前面加任何非单词字符[^A-zA-Z0-9\并后跟的有效正则表达式是:(?您需要使用环视: :syn match pythonBoolean "\(\W\|^\)
self
,但仅当它后跟
时。下面是我想出的代码:
syn match pythonBoolean "\(\Wself\)\%(\.\)"
不幸的是,
也会突出显示,尽管我使用了一个非捕获组\%(\.\)
有什么想法吗?用它怎么样?在通用正则表达式语法中,self前面加任何非单词字符
[^A-zA-Z0-9\
并后跟
的有效正则表达式是:(?您需要使用环视:
:syn match pythonBoolean "\(\W\|^\)\zsself\ze\."
或
:syn match pythonBoolean“\(\W\ | ^\)\@作为向后看和向前看的替代方案,后者往往会降低vim的速度:
syn match pythonBoolean "\<self\ze\."
syn match pythonBoolean“\基于@Meninx的答案,我将此添加到我的.vimrc
:
augroup PythonCustomization
" highlight python self, when followed by a comma, a period or a parenth
:autocmd FileType python syn match pythonStatement "\(\W\|^\)\@<=self\([\.,)]\)\@="
augroup END
augroup python自定义
突出显示python self,后跟逗号、句点或parenth
:autocmd文件类型python syn match pythonstatment“\(\W\ | ^\)\@刚开始时,您是否尝试过\v激活magicI尝试过它,它不会改变任何事情。据我所知,\v
允许避免转义特殊字符,如括号等。但是self
在python中不是一个关键字。@aragaer您是对的,但无论它是否是关键字,都不会改变当前的问题。工作吧我想要个符咒!谢谢。
syn match pythonBoolean "\<\w\+\ze\."
augroup PythonCustomization
" highlight python self, when followed by a comma, a period or a parenth
:autocmd FileType python syn match pythonStatement "\(\W\|^\)\@<=self\([\.,)]\)\@="
augroup END