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

标签 vim scripting highlight

我需要一个脚本代码来突出显示“[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/

相关文章:

linux - 为什么更改方法输入会导致 xmodmap 'caps to esc' 无效

regex - 删除由分隔符分隔的前 N ​​个字段

python - 用 pandas 在 excel 中给单元格着色

css - 如何将样式名称添加到网格行而不选择它们?

vim - 在 Vim 中恢复删除的行?

git - 我如何让 git 显示 vim 中的更改,就像 hg 对 hgeditor 脚本所做的那样?

javascript - 适合 JavaScript 初学者的项目

shell - 如何编写读取目录中所有文件名并在文件名中查找特定字符串的 shell 脚本?

bash - 更改屏幕分辨率并运行程序的脚本?

c# - 更改 WinForms 按钮高亮颜色