如何在vim中给指定的文本上色?

5
无论我在Vim中键入什么编程关键字,它们都会显示特定的颜色。
我想创建自己的颜色。
如何使用指定的颜色给文本着色?
我尝试找到答案,但还没有找到。
3个回答

5

要扩展C/CPP语法(这也适用于任何语言,只需检查已经存在的名称,例如此处的Constant),请在您的~/.vimrc中进行如下设置:

if has("autocmd")
    augroup filetypedetect
            au BufNewFile,BufRead *.myext    setf mysyntax
    augroup END
endif

在你的~/.vim/syntax/mysyntax.vim文件中。
runtime! syntax/cpp.vim

syn keyword myConstant foo bar foobar quack
hi def link myConstant Constant

从零开始创建新关键字的方法:

syn match myKeyWord "foobar" contained
hi kwRed  term=standout ctermfg=12 guifg=Red
hi def link  myKeyWord  kwRed

你可以使用filetypedetect调用它,或者直接在你的.vimrc中使用。


我尝试创建一个新的关键字,就像你在示例中给出的那样。但是,当打开文件本身时,我遇到了错误:"sample.myext" [New File]。在处理/home/sat/.vim/syntax/mysyntax.vim时检测到错误: 第4行: E418:非法值:红色 - sat
啊,抱歉,你需要更好地检查颜色名称,我实际上弄错了 :-S - zmo
尝试使用以下命令:term=standout ctermfg=12 guifg=Red,并在命令模式下输入:hi以获取已存在的颜色和高亮列表(可重复使用)。 - zmo
不要忘记,您可以随时查看 :help hi:help syn - zmo

3

如果您想扩展特定文件类型的语法(例如Java),请使用 :syntax:highlight。如果您只想在窗口中着色特定单词,可以快速使用 :match 或任何可用的“多重标记”插件,如 mark.vim


2

看一下match

:match Identifier /\w\+/
:2match Keyword /\v(if|else|then|break)/

还可以使用:hi命令查看高亮组。或者,您可以编写一个语法文件,这需要更多的工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接