我需要一个脚本代码来突出显示“[Capítulo”和“]”以及它们之间的所有内容。谢谢。
我希望它在我每次打开时都能正常工作,例如,一个 .txt 文件。就像代码高亮一样。
最佳答案
这里有一个简单的方法:
在 vim 中,使用 :syn on
确保语法高亮打开
运行命令 :highlight
以获得所有高亮组名称的列表,以及它们的外观示例。 Error
组在我的配色方案中看起来很突出,因此我将在我的示例中使用它(但您可以使用任何其他名称,例如 Todo
或搜索
)
:syntax match Error /\[Capítulo[^\]]*\]/
此模式将防止您贪婪地匹配最大的 block 。即使其他人建议您使用正则表达式 /\[Capítulo.*\]/
- 它可能不是您想要的,因为如果有两个或更多这样的模式,它会匹配两者之间的所有内容在一条线上。
例如 /\[Capítulo.*\]/
将匹配整行:
[Capítulo foo] these words should not be highlighted [Capítulo bar]
相同的示例,但使用 /\[Capítulo[^\]]*\]/
将只匹配 [] 中的内容:
[Capítulo foo] these words should not be highlighted [Capítulo bar]
使用正则表达式,创建一个匹配除要结束匹配的字符以外的所有内容的组是一个常见的技巧,而不是使用将匹配尽可能多的字符的 .*
能够。在这种情况下,我们创建组 [^\]]*
- 表示“匹配除 .. 以外的所有内容”
如果这按您希望的方式工作,请将不带 ":
"的语法匹配行添加到您的 .vimrc
关于Vim:需要一个小脚本代码的帮助来突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/712616/