如何使用molokai为vim中的括号和方括号添加颜色



我在vim中使用molokai以python/html/css/javascript进行编码。当我编辑python文件(或javascript)时,括号没有颜色。对于括号为灰色的简单脚本(如molokai.vim本身),情况并非如此。

我编辑了molokai.vim并添加了

hi parens guifg=#999999

然后我编辑了.vimrc并添加了:

syn match parens /[(){}]/

但是括号和方括号保持白色。

我做错了什么?

  1. 永远不要使用:syn来突出显示所有文件类型,这有matchadd()。使用:syn可以很容易地打破高亮显示,matchadd()是一个叠加
  2. Syntax事件触发时,语法高亮显示被覆盖。此外,它只对当前缓冲区有影响。所以vimrc中只有syn永远不会工作,你必须使用自动命令

    autocmd! Syntax python :syntax match Parens /[(){}]/
    

    (对于python,它是安全的,因为括号和数字括号不与任何其他语法元素匹配)。

  3. javascript中的括号(())已由javaScriptParens高亮显示组匹配。因此你必须使用

    hi def link javaScriptParens Parens
    

    (配色方案)。支架由javaScriptBraces匹配,需要类似的命令。

  4. 为了确定特定符号使用的突出显示,我将光标放在该符号上并启动

    echo 'Normal '.join(map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")'))
    

    ,最后显示的单词通常是您需要的。若只显示Normal,那个么符号并没有高亮显示,必须转到2,否则必须转到3。

  5. 对于忽略当前使用的突出显示的通用解决方案,您可以使用matchadd(),正如我已经说过的。但它是窗口本地的,所以如果你使用多个窗口/选项卡,你就不能没有autocmd:

    autocmd! WinEnter * :if !exists('w:parens_match_id') | let w:parens_match_id=matchadd('Parens', '[(){}]') | endif
    

所有自动命令都要用包围

augroup HighlightParens
autocmd! …
augroup END

最新更新