我使用jellybeans colorscheme为vim。我注意到在编写递归函数时,名称仅在定义的开头而不是在缩进块中突出显示:
def fact(n): #'fact' appears yellow
...
return n*fact(n-1) #'fact' appears in white like regular text, variables etc.
有没有办法解决这个问题?
答案 0 :(得分:1)
是的,有解决方案,但你真的想要它:它可以突出你的所有代码。
只需突出显示所有类似myfunc()的内容:
:syn match calledFunc /\(\w\|\.\)\+\ze(/
:hi calledFunc ctermfg=Yellow
注意:
使用语法优先级(:help syn-priority
),这应该是你想要的。因为像def myfunc()这样的函数定义被认为是关键字(并且具有更高的优先级):
见/usr/share/vim/vim74/syntax/python.vim
:
syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite
syn match pythonFunction "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained
HiLink pythonFunction Function
另一个缓慢的解决方案可能是: