vim - 如何使两个用户定义的突出显示一起工作

标签 vim

我想突出显示 Vim 中的过长行(例如: https://stackoverflow.com/a/235970/1329844 )以及尾随空白(例如: https://stackoverflow.com/a/4617156/1329844 )。但是,每当我使用这两个高亮显示时,只会应用最后一个高亮显示。

我的 .vimrc 中有以下代码:

highlight OverLength ctermbg=0 ctermfg=197
match OverLength /\%>80v.\+/
highlight ExtraWhitespace ctermbg=0
match ExtraWhitespace /\s\+$/

当我打开文件时,仅突出显示尾随空格。如果我交换两个突出显示/匹配对的顺序,则仅突出显示超长的行。我需要更改什么才能使两种模式匹配并突出显示?

最佳答案

:match 命令只能有一种事件模式。如果两个亮点都使用相同的颜色,则可以将图案与 \| 组合起来。在这里,您必须使用两个替代命令之一::2match:3match,或者您可以使用(较新的)matchadd() 函数,您可以在其中指定任意数字 (> 3) 作为(最后一个){id} 参数。

:call matchadd('OverLength', '\%>80v.\+', 10, 4)
:call matchadd('ExtraWhitespace', '\s\+$', 10, 5)

关于vim - 如何使两个用户定义的突出显示一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19451704/

相关文章:

vim - Vim 命令中的\@<= 和\@= 是什么意思?

python - Fedora 19 Pyclewn 找不到GDB版本

php - 在 Vim 中阅读 PHP 手册页

vim - 为没有扩展名的文件设置 vim 文件类型,仅

Vim block 粘贴内联或新行

maven - 如何在 vimscript 中遍历目录结构并启动 mvn build?

linux - 如何设置 Vim 为终端的十六色?

vim - 停止在元/领导键之后插入热键组合

vim - 在 Applications 文件夹中创建 macvim

linux - 在 vim 中打开 C 文件时看不到颜色