【问题标题】:Vim: Editing the python.vim syntax file to highlight like TextmateVim:编辑 python.vim 语法文件以像 Textmate 一样突出显示
【发布时间】:2011-11-29 14:10:09
【问题描述】:

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

self, a, b 在 Textmate 中高亮显示,但在 Vim 中没有。我认为我必须执行以下操作。

  1. 匹配一个新区域

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

    syn match pythonParameters ".*" contained
    

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

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

这是我为 python 高亮的 vim 语法。

编辑 2:为了彻底彻底,我为它创建了一个 github 页面。

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

【问题讨论】:

  • 这比我发布的要复杂一些。我很想看看你的最终代码。
  • 当然,我会尽快在 github 上分享它,因为它不像现在那样笨拙。我借用了 ruby​​.vim 语法,你的例子给了我足够的东西来弄清楚我需要的其余部分。
  • github.com/pfdevilliers/Pretty-Vim-Python Github 上文件的链接。欢迎任何改进。

标签: regex vim


【解决方案1】:

好的,你有几个问题。

  1. 已经有一个名为 pythonFunction 的区域,用于突出显示 def 和函数名称。
  2. 此区域将匹配任意位置的任何括号

所以,找到 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

【讨论】:

    【解决方案2】:

    Vim、高亮匹配括号 ( )、方括号 [ ] 和花括号:{ }

    在圆括号、方括号或大括号上设置光标下的前景色和背景色的配置选项是这样的:

    hi MatchParen      ctermfg=16  ctermbg=208 cterm=bold
    

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

    :set cursorline
    :set nocursorline
    

    设置光标所在行的背景颜色:

    hi VisualNOS                   ctermbg=999
    hi Visual                      ctermbg=999
    

    这是我的改编:

    https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 2011-01-04
      • 2019-12-24
      相关资源
      最近更新 更多