繁体   English   中英

在 Vim 中搜索当前行?

[英]Search in the current line in Vim?

我喜欢 vim 中的增量搜索 ( /pattern ),它与我键入时的模式匹配。 但它在文件范围内。 是否可以限制它以便在当前行中搜索并在到达行尾时环绕? 这将有助于加速一行中的导航,因此如果不引入额外(更多)的击键,那就太好了。

你可以做这样的事情。

noremap <F6> /\%<C-R>=line('.')<CR>l

这使用\\%l原子来匹配当前行。 例如, \\%15l匹配第15行。这将搜索限制在该行。 看一看:h \\%l 为了获得当前的行号,我们使用表达式寄存器和line函数。

vim文档中模式原子来看,vim不支持当前行中的搜索。 但是还有两种其他方法可以做类似的事情。

  • 首先选择当前行,然后使用\\%V进行选择。
  • 使用\\%* l在指定的行中搜索,就像使用/ \\%12laaa在第12行中搜索aaa。

还有其他一些方法可以在标记之间进行搜索,但是对于这种情况而言,看起来太复杂了。

您可以使用fFtT,; 在行中搜索单个字符:

f(
2T=

如果您不喜欢思考,也可以wWbBeE

请参阅:help navigation

Vim 8.2.3110(2021 年 7 月)以来,为此添加了一个新的匹配模式:

\%.l    Matches at the cursor line.

所以你现在可以在最新的 Vim 版本中使用例如/keyword\%.l/\%.lkeyword

暂无
暂无

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

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