Vim:需要帮助一个很小的脚本代码来突出显示

brs*_*nli 3 vim scripting highlight

我需要一个脚本代码来突出显示"[Capítulo"和"]"以及它们之间的所有内容.谢谢.

我希望每次打开时它都可以工作,例如.txt文件.就像代码突出显示一样.

Pau*_*nov 5

这是一个简单的方法:

在vim中,确保语法高亮显示 :syn on

运行该命令:highlight以获取所有突出显示组名称的列表,以及它们的外观样本.该Error组在我的colorscheme中看起来很好,所以我将在我的示例中使用它(但你可以使用任何其他名称,如TodoSearch)

:syntax match Error /\[Capítulo[^\]]*\]/ 
Run Code Online (Sandbox Code Playgroud)

这种模式可以防止你贪婪地匹配最大的块.即使其他人建议您使用正则表达式/\[Capítulo.*\]/- 它可能不是您想要的,因为如果一行上有两个或更多这样的模式,它将匹配其间的所有内容.

例如,/\[Capítulo.*\]/将匹配整行:

[Capítulofoo]这些话不应该突出显示[Capítulobar]

相同的例子,但/\[Capítulo[^\]]*\]/只会匹配[]内的东西:

[Capítulofoo]这些话不应该突出显示[Capítulobar]

使用正则表达式,这是一个常见的技巧,可以使一个组匹配除了您希望结束匹配的字符之外的所有字符,而不是使用.*匹配尽可能多的字符的字符.在这种情况下,我们做了组[^\]]*-这表示" 匹配除了]的一切. "

如果按照您希望的方式工作,请将没有" :" 的语法匹配行添加到.vimrc中