gpt4 book ai didi

python - Vim 使用 python 递归定义突出显示

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:53 25 4
gpt4 key购买 nike

我在 vim 中使用 jellybeans 颜色方案。我注意到,在编写递归函数时,名称仅在定义开头突出显示,而不是在缩进 block 内突出显示:

def fact(n):        #'fact' appears yellow
...
return n*fact(n-1) #'fact' appears in white like regular text, variables etc.

有办法解决这个问题吗?

最佳答案

是的,有解决方案,但您真的想要这样吗:它可以突出显示您的所有代码。

<小时/>

只需突出显示所有看起来像 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

另一个缓慢的解决方案可能是:

  • 1/解析文件(并包含?)以获取所有函数,将它们存储在列表中
  • 2/突出显示这些功能

关于python - Vim 使用 python 递归定义突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44913721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com