Vim:编辑python.vim语法文件以突出显示Textmate

时间:2011-11-29 14:10:09

标签: regex vim

我试图编辑python.vim语法文件,以复制Textmate中python的语法高亮显示。附图说明了我努力实现的功能参数的突出显示。

imgur pic of code

自我,a,b在Textmate中突出显示,但在Vim中没有突出显示。我想我必须做以下事情。

  1. 匹配新区域

    syn region pythonFunction start="(" end=")" contains=pythonParameters skipwhite transparent
    
  2. 尝试匹配字符串后跟逗号

    syn match pythonParameters ".*" contained
    
  3. 所以在第2点,"。*"将匹配任何字符串,必须进一步扩展为正确。但是,我不确定我是否在正确的路径上,因为2中的匹配不受限制 到括号()之间的区域。任何提示或输入将不胜感激。

    编辑1:如果有人想知道最终结果如何。

    这是我为python突出显示的vim语法。

    imgur pic of code

    编辑2:因此,为了最终的彻底性,我为它创建了一个github页面。

    http://pfdevilliers.github.com/Pretty-Vim-Python/

2 个答案:

答案 0 :(得分:6)

好的,你有几个问题。

  1. 已经有一个名为pythonFunction的区域,用于突出显示def和函数名称。
  2. 此区域将匹配任何位置的任何括号
  3. 因此,找到pythonFunction匹配,并将其更改为:

    syn match   pythonFunction
          \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained nextgroup=pythonVars
    

    添加nextgroup告诉vim在函数定义之后匹配pythonVars。

    然后添加:

    syn region pythonVars start="(" end=")" contained contains=pythonParameters transparent keepend
    syn match pythonParameters "[^,]*" contained skipwhite
    

    最后,要实际突出显示它,请找到HiLink部分,然后添加:

    HiLink pythonParameters       Comment
    

    Comment更改为您想要的分组,或添加您自己的分组。我自己使用Statement

答案 1 :(得分:0)

Vim,突出显示匹配的括号(),方括号[]和花括号:{}

用于在括号,方括号或大括号上设置光标下前景和背景颜色的配置选项是这个:

hi MatchParen      ctermfg=16  ctermbg=208 cterm=bold

启用/禁用光标下行的背景颜色:

:set cursorline
:set nocursorline

设置光标下线条背景颜色的颜色:

hi VisualNOS                   ctermbg=999
hi Visual                      ctermbg=999

enter image description here

这是我的改编:

https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting