Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim语法突出显示:使用正则表达式突出显示`self`python关键字_Python_Regex_Vim_Vi_Macvim - Fatal编程技术网

Vim语法突出显示:使用正则表达式突出显示`self`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\|^\)

我试图在vim中定制python的语法高亮显示。我想突出显示关键字
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