search - Vim:在匹配另一个模式后搜索第一个匹配项

标签 search vim

如何在 Vim 中使用一个命令/搜索模式在 Foo 之后找到第一次出现的 bar

例如:假设我有一些像这样的文本:

Bar and bar and bar, I'm such a barbarian.

...

Foo: That bar serves German beer.

Bar bar and bar, so much bar.

Foo: Unrelated.

...bla

but then next bar.

如何在粗体​​之间跳转?

最佳答案

想到的第一种方式(简单但不可重复)

你可以这样做:

/Foo/;/bar

但“最后一个模式”将是 bar所以这不能用 n 重复, N等,这意味着您必须执行一次然后执行 /<Up><CR> ,这可能会或可能不会满足您的需求。

请注意,一旦您跳转到第二个匹配项,您可以执行 ``跳回到第一个和``跳回到第二个,依此类推。

参见 :help :;:help `` .

想到的第二种方式(更复杂但可重复)

使用单一模式,因此可以用 n 重复, N等,你可以这样做:

/Foo\_.\{-}\zsbar

哪里……

  • /Foo匹配下一个 Foo ,
  • \_.\{-}匹配任何字符,包括 EOL,尽可能少,
  • \zs开始实际匹配,丢弃之前的内容,
  • 我们想成为bar .

参见 :help \_. , :help \{ , 和 :help \zs .

关于search - Vim:在匹配另一个模式后搜索第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66658895/

相关文章:

c# - 如何在知道同一条目中的其他值的同时获取表中的值?

vim - Vim 终端删除线

vim:视觉 block 选择直到每一行的字符

vim - 在键盘快捷键上插入预定义文本

excel - 在一组单元格中查找单词

algorithm - 你将如何实现像雷鸟的 "quick search"这样的功能?

algorithm - "uniform-cost search"算法中的路径如何获取?

java - 保留 [] Java 之间的文本

linux - 在 shell 脚本中通过 vi 编辑器编辑文件显示错误

vim - vim 中的 $PATH 与 shell 中的 $PATH 不同? (苹果机)