繁体   English   中英

我怎样才能找到“<html> “在 Vim 缓冲区中?

[英]How can I find “<html>“ in the Vim buffer?

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

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

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

默认是magic (用:set magic?检查),这可能有点令人惊讶,因为一些非字母数字字符具有特殊的正则表达式含义,但不是全部。 特别是^$*. 做,但大多数其他字符不做。 例如,要匹配替代项,您必须转义管道字符this\\|thatthis|that将匹配文字字符串"this|that"

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

在普通模式下, /命令向前搜索( ? — 向后)。 假设我们在顶部,并且想要向前搜索。 所以,如果我们想找到一个特定的标签,比如“div”,我们应该输入以下内容:

/\V<div>

这里的\\V开启了“非常不可思议”的模式,在这种模式下,一个符号没有任何特殊意义,除非它前面有一个反斜杠。 (我只使用“非常神奇”和“非常不神奇”模式,不使用“神奇”和“不神奇”模式。)

如果我们想找到任何 html 标签,即尖括号之间的东西,我们可以输入以下之一:

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

这将找到并突出显示所有标签,包括它们的属性。

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

nnoremap // /\V

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM