如何在Vim缓冲区中找到“ <html>”?

时间:2019-09-06 18:19:44

标签: vim

我想使用Vim在html文件中搜索HTML标记。 我尝试过\<html\>,但这意味着只搜索“ html”字词。 我不知道如何找到大写或小写的字符。

2 个答案:

答案 0 :(得分:2)

Vim具有4种正则表达式解释模式:

  • 没有魔术,
  • 没有魔法,
  • 魔术师和
  • 非常神奇。

默认值为magic(请检查:set magic?),这可能有点令人惊讶,因为某些非字母数字字符具有特殊的正则表达式含义,但不是全部。特别是^$*.可以,但是大多数其他字符都不能。例如,为了匹配替代方案,您必须转义竖线字符this\|that,而this|that将与文字字符串"this|that"相匹配。

在您的情况下,<没有特殊含义,但\<却有特殊含义(单词的开头)。搜索<html>是可行的,但是如果有疑问,您可以通过在搜索之前加上\V(所以/\V<html>)来激活“非常魔术”模式,其中每个字符都与字符本身匹配。如果并且何时要激活所有正则表达式功能,则可以使用小写的\v激活“非常魔术”模式(因此/\v<html>将搜索单词“ html”)。

答案 1 :(得分:0)

在正常模式下,/命令向前搜索(? —向后搜索)。假设我们在顶部,并想向前搜索。因此,如果我们要查找特定的标签,例如“ div”,则应输入以下内容:

/\V<div>

此处\V打开“非常不可思议”模式,在该模式下,除非在符号前加反斜杠,否则它没有任何特殊含义。 (我只使用“非常魔术”和“非常魔术”模式,而不使用“魔术”和“非常魔术”模式。)

如果我们想找到任何html标签,即尖括号之间的内容,我们可以输入以下其中一项:

/\V<\[^<>]\+>
/\v\<[^<>]+\>

这将找到并突出显示所有标签及其属性。

您可以为自己喜欢的模式创建方便的键盘映射,例如:

nnoremap // /\V

现在,双击/会将您带入“非常不可思议”模式的搜索行。

输入:help pattern以获得更多信息。