V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twilight
V2EX  ›  程序员

vim 中语法高亮 Comment 内的 String,Number 被显示成不同于 Comment 的颜色,怎么破?

  •  
  •   twilight · 2014-07-08 12:53:23 +08:00 · 3521 次点击
    这是一个创建于 3793 天前的主题,其中的信息可能已经有所发展或是发生改变。
    简单地说,就是如何不让vim“解释”Comment内的String和Number的颜色。

    以C语言语法高亮为例:

    比如定义
    hi Comment guifg=#008000 "Green
    hi Number guifg=#000000 "Black


    对于语句:
    //int i = 888888;

    "int i ="被显示成绿色, "888888"被显示成黑色。

    如何让整个被注释的语句全显示为Comment定义的颜色?
    11 条回复    2014-07-09 03:19:58 +08:00
    xuyuanp
        1
    xuyuanp  
       2014-07-08 12:59:11 +08:00
    这个是syntax的问题吧
    jsonline
        2
    jsonline  
       2014-07-08 13:00:51 +08:00
    这是个插件么?
    twilight
        3
    twilight  
    OP
       2014-07-08 13:37:08 +08:00 via Android
    @xuyuanp 能不能具体点儿,看帮助看的一头雾水
    twilight
        4
    twilight  
    OP
       2014-07-08 13:38:53 +08:00 via Android
    @jsonline C.vim, vim的标准语法高亮插件
    自带的
    lihuoqingfly
        5
    lihuoqingfly  
       2014-07-08 13:39:30 +08:00
    给Comment着色,合适么
    twilight
        6
    twilight  
    OP
       2014-07-08 13:44:35 +08:00 via Android
    @lihuoqingfly 不明白你的意思,许多IDE着色comment
    xuyuanp
        7
    xuyuanp  
       2014-07-08 13:58:44 +08:00   ❤️ 1
    就是syntax文件中,有类似这样的定义
    syn match Number '' containedin=Comment
    twilight
        8
    twilight  
    OP
       2014-07-08 14:02:58 +08:00
    @xuyuanp 多谢,我研究一下。
    chemzqm
        9
    chemzqm  
       2014-07-08 14:21:46 +08:00   ❤️ 1
    :h 然后进入 usr_44.txt

    *44.5* 嵌套项目

    看一下这个注释:

    %Get input TODO: Skip white space ~

    你想将 "TODO" 高亮显示成黄色字符,即使它在一个蓝色高亮显示的注释中。要使 Vim
    了解到这些,你需要定义以下的语法组: >

    :syntax keyword xTodo TODO contained
    :syntax match xComment /%.*/ contains=xTodo

    找到定义语法的那段改下就行了
    twilight
        10
    twilight  
    OP
       2014-07-08 15:05:25 +08:00
    @chemzqm 感谢,正在看syntax目录下的c.vim,好复杂。
    rainysia
        11
    rainysia  
       2014-07-09 03:19:58 +08:00   ❤️ 1
    这个很简单
    配色对应2种vim的模式,GUI,TERM,分别对应gtk的vim和终端的vim(终端又可以分成原色和256色 ).
    其中每一种又分成fg前景色和bg背景色

    上面的朋友已经说了下这个, 我一般是全部自定义vim的着色.所以你也可以这样.

    直接在vimrc里面加

    hi Comment guifg=#87CEEB guibg=#1C1D1F gui=NONE
    hi SpecialComment guifg=#FF00BF guibg=#1C1D1F gui=NONE
    hi Comment ctermfg=darkgrey ctermbg=black cterm=BOLD
    hi SpecialComment ctermfg=lightred ctermbg=black cterm=BOLD
    类似这样即可, 具体的. 你可以打开gvim, 在菜单里面选下Highlight test 仔细看下, 里面有对应的高亮模块.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:37 · PVG 07:37 · LAX 15:37 · JFK 18:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.