如何修改Vim中Java/C/C++等语言类、对象、变量关键字的特定高亮颜色
如何修改Vim中Java/C/C++等语言类、对象、变量关键字的特定高亮颜色
嘿,这个问题我之前也折腾过,其实Vim里所有语法高亮都归属于不同的「语法组」,咱们只要找到对应这个颜色的组,再调整它的颜色设置就行,具体操作分三步:
第一步:定位目标语法组
打开你的Java/C/C++文件,把光标精准移到那个你想改颜色的关键字上,然后在Vim的命令行输入:echo synIDattr(synID(line('.'), col('.'), 1), 'name')按下回车后,就能看到这个高亮所属的语法组名称啦,常见的可能是全局的
Identifier,或是语言专属的javaIdentifier、cIdentifier这类。第二步:查看当前组的颜色配置
拿到组名后,你可以用命令查看它现在的颜色值,以及这个配置来自哪个文件::verbose highlight 你的组名比如输入
:verbose highlight Identifier,执行后会显示类似Identifier xxx guifg=#xxxxxx ctermfg=xx的内容,最后一行的Last set from ...还会告诉你这个配置的来源文件,方便你参考默认设置。第三步:修改颜色并保存设置
接下来就可以自定义颜色了,有两种常用方式:- 全局修改(影响所有语言):如果这个组是全局的
Identifier,直接在你的~/.vimrc文件末尾添加高亮命令,比如把颜色改成红色:
这里highlight Identifier guifg=#ff0000 ctermfg=1guifg是GUI模式下的前景色(用十六进制颜色码),ctermfg是终端模式下的颜色(用终端颜色编号,比如1对应红色,你可以查终端颜色表选喜欢的编号)。 - 针对特定语言修改:如果是语言专属组(比如
javaIdentifier),推荐在~/.vim/after/syntax/目录下新建对应语言的文件,比如java.vim,然后在里面写:
这种方式只会修改Java文件里的该组颜色,不会影响其他语言,而且不会覆盖Vim的默认语法文件,更稳妥。highlight javaIdentifier guifg=#00ff00 ctermfg=2
改完后保存文件,重启Vim或者用
:source ~/.vimrc(如果改了vimrc)就能看到新颜色啦。- 全局修改(影响所有语言):如果这个组是全局的
另外要注意,如果你用了第三方Vim颜色主题,主题里可能已经定义过这些组的颜色,最好把你的高亮修改命令放在主题加载之后,或是用after目录的方式,这样你的设置会覆盖主题的默认配置。
备注:内容来源于stack exchange,提问作者stackoverflowuser
相关产品推荐
相关产品推荐

