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

2014-07-08 12:53:23 +08:00
 twilight
简单地说,就是如何不让vim“解释”Comment内的String和Number的颜色。

以C语言语法高亮为例:

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


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

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

如何让整个被注释的语句全显示为Comment定义的颜色?
3511 次点击
所在节点    程序员
11 条回复
xuyuanp
2014-07-08 12:59:11 +08:00
这个是syntax的问题吧
jsonline
2014-07-08 13:00:51 +08:00
这是个插件么?
twilight
2014-07-08 13:37:08 +08:00
@xuyuanp 能不能具体点儿,看帮助看的一头雾水
twilight
2014-07-08 13:38:53 +08:00
@jsonline C.vim, vim的标准语法高亮插件
自带的
lihuoqingfly
2014-07-08 13:39:30 +08:00
给Comment着色,合适么
twilight
2014-07-08 13:44:35 +08:00
@lihuoqingfly 不明白你的意思,许多IDE着色comment
xuyuanp
2014-07-08 13:58:44 +08:00
就是syntax文件中,有类似这样的定义
syn match Number '' containedin=Comment
twilight
2014-07-08 14:02:58 +08:00
@xuyuanp 多谢,我研究一下。
chemzqm
2014-07-08 14:21:46 +08:00
: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
2014-07-08 15:05:25 +08:00
@chemzqm 感谢,正在看syntax目录下的c.vim,好复杂。
rainysia
2014-07-09 03:19:58 +08:00
这个很简单
配色对应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 仔细看下, 里面有对应的高亮模块.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX