我想知道是否有一种方法可以找到一个模式,但将其限制在当前行。基本上,相当于/PATTERN
,但仅限于当前行,而不是整个文档。
我尝试过:s/PATTERN
,但这会删除该行中的模式,并将光标放在该行的开头,这根本不是我所需要的。我希望你能在不更换的情况下搜索。。
我希望在宏中使用它,以便将光标放置在模式的开始处,就像在整个文件上执行/PATTERN
时一样,因此任何宏友好的东西都更好。
有没有vim用户有什么想法?
编辑:宏中的0/PATTERN
可以满足我当前的需要,但我希望有一种更具体的方法来限制搜索。
回答:到目前为止,这里有几种方法,但我现在最喜欢的一种是使用Shift+V
视觉选择当前行,然后使用/\%V
仅在视觉选择中搜索。然后Shift+V
将再次关闭可视模式。
6条答案
按热度按时间zhte4eai1#
我对宏的知识有限,但可以交互地使用
Shift + V
选择当前行,然后执行/\%Vsearch
(请参阅http://vimdoc.sourceforge.net/htmldoc/pattern.html#/%V)。nkoocmlb2#
尝试通过键入以下内容查找模式的第一个字符
这不是你需要的,但可以帮助解决问题。
jv2fixgn3#
其中
\%9
表示行号9。输入行号还是有点蹩脚。您可以ctrl+r=后跟一个vim表达式,然后输入来计算vim表达式并插入其输出。
line('.')
将返回光标所在的行。一步到位
有关更多帮助,请参阅:
iih3973s4#
1.将光标放在要搜索的行上
1.用shift+v选择它
1.键入/开始搜索
1.用
\%V
作为你的词的前缀,例如\%Vabc
仅在视觉上选定的块中搜索abc
(在我们的例子中是单行)5lhxktic5#
您可以使用以下命令搜索而不进行替换
然后按n跳过替换。如果找不到模式,你甚至不会被问到。
您也可以只突出显示当前行或行范围。
gwo2fgha6#
如果您对当前行中出现的次数感兴趣,可以使用
g
和n
标记:[range]s[ubstitute]/pattern/string/[flags]
:如果未指定范围,则默认值为当前行。
当你按第一个
*
在你想计数的单词上时,你可以缩写成下面的单词