Vim语法突出显示';其他:';对于Python

Vim语法突出显示';其他:';对于Python,python,vim,syntax-highlighting,vim-syntax-highlighting,Python,Vim,Syntax Highlighting,Vim Syntax Highlighting,我对Vim中默认的python语法高亮显示感到恼火 它没有正确突出显示else:语句。 如果我在else和冒号:之间有一些空格,那么Vim只会突出显示else语句,因此else:起作用,但else:不起作用 它一定很容易修理 我使用的是Vim 7.2,默认情况下它应该可以工作 查找类似以下内容的文件: /usr/share/vim/vim72/syntax/python.vim syn keyword pythonConditional if elif else 那里应该有一条线,看起来

我对Vim中默认的python语法高亮显示感到恼火

它没有正确突出显示
else:
语句。 如果我在
else
和冒号
之间有一些空格,那么Vim只会突出显示else语句,因此
else:
起作用,但
else:
不起作用

它一定很容易修理


我使用的是Vim 7.2,默认情况下它应该可以工作

查找类似以下内容的文件:

/usr/share/vim/vim72/syntax/python.vim
syn keyword pythonConditional   if elif else
那里应该有一条线,看起来像这样:

/usr/share/vim/vim72/syntax/python.vim
syn keyword pythonConditional   if elif else

如果没有,请进一步调查。
elif
有效吗?

启用文件类型,以便自动设置。 我在这里介绍了vim的python自动缩进和语法突出显示设置:
我的vimrc文件中有以下语句。这使得其他:被标记为一个单词。删除该选项后:语法高亮显示工作正常

设置iskeyword+=:

请注意

/usr/share/vim/vim72/syntax/python.vim
由于某种原因,它不是最新的


获取语法突出显示文件的最新版本,这会定期弹出,我会将其放入我的vimrc中:

" No seriously, else: is the same as else
autocmd BufEnter,BufRead,BufNewFile *.py    set iskeyword-=:

在我的~/.vim/syntax/python.vim文件中,我有一行

syn keyword pythonConditional   else:

这就解决了这个问题。

要获得类似的效果,您可以只为冒号添加一个语法规则,然后链接关键字的突出显示。您确定该命令正确吗
+=:
对我没有影响,Mark Roberts提到的
-=:
对我没有影响。为了澄清,
设置iskeyword+=:
是要删除的违规行。但是,这意味着冒号也不会高亮显示。人们可能喜欢或不喜欢这个事实,我喜欢这个答案。如果用“*”在光标下搜索,则不希望它与“:”匹配。这确实与Mark Roberts的答案相结合带来了变化。