如何在vim中的正则表达式中更改线前景色?

时间:2016-09-11 20:14:58

标签: vim

如果包含某些单词,如何更改vim中某行的前景文本颜色?例如,我希望我的所有assert()宏都以灰色显示,因此我的眼睛看不到它们。我的代码可能是这样的:

void add_cmd_to_history(void) {
    uint32_t index;

    ASSERT_D1(history_num_lines<MAX_HISTORY_SIZE);
    index=history_num_lines*MAX_CMD_LINE_BUF_ALLOC_LEN;
    strcpy(&history[index],cmd_line_buf);
    history_num_lines++;
}

所以,在我的.vimrc中,我需要正则表达式字符串&#39; ASSERT_D1&#39;如果匹配,请更改&#39; ctermfg&#39;灰色&#39;或其他颜色。我已经有C语言语法hiliting,因此我需要在我的所有插件的末尾应用此规则。怎么在vim中完成?

1 个答案:

答案 0 :(得分:1)

在现有语法高亮显示之上突出显示最好通过:match命令完成:

:highlight Assertions ctermfg=gray guifg=gray
:2match Assertions /\<ASSERT_D1\>[^;]*;/

这是作用于当前窗口的。如果您主要编辑C / C ++文件,则可以在~/.vimrc

中全局定义
autocmd VimEnter,WinEnter * 2match Assertions /\<ASSERT_D1\>[^;]*;/

或者,将命令放在~/.vim/after/ftplugin/c.vim中,但是它不会自动应用于拆分窗口/标签(如果你不使用拆分就没问题)。