我想知道是否有办法找到模式,但将其限制在当前行。基本上,相当于/PATTERN
但仅限于当前行,而不是整个文档。
我已经尝试了:s/PATTERN
,但是从行中删除了模式并将光标放在行的开头,这根本不是我需要的。我希望你能在没有替换的情况下进行搜索......
我希望将它用于宏,以便将光标放在该模式的开头,就像在整个文件上执行/PATTERN
时那样,所以任何宏观 - 友善甚至更好。
那些可能有想法的vim用户?
编辑:宏中的0/PATTERN
可以满足我当前的需求,但我希望有更具体的方法来限制搜索。
答案:到目前为止,在这里发布了一些方法,但我现在最喜欢的方法是使用Shift+V
直观地选择当前行,然后/\%V
仅搜索在视觉选择中。然后再次Shift+V
将关闭视觉模式。
答案 0 :(得分:11)
我对宏的了解有限,但是以交互方式,您可以选择Shift + V
的当前行,然后执行/\%Vsearch
(请参阅http://vimdoc.sourceforge.net/htmldoc/pattern.html#/ \%V)。
答案 1 :(得分:7)
/\%9lsearch
其中\%9
表示第9行。
输入行号仍然有点蹩脚。您可以 ctrl + r = ,然后是vim表达式,输入来评估vim表达式并插入其输出。 line('.')
将返回光标的行。
完成一个步骤
/\%<c-r>=line('.')<cr>lsearch
如需更多帮助,请参阅:
:h /\%l
:h i_CTRL-R
答案 2 :(得分:7)
尝试通过键入
来查找模式的第一个字符f <letter>
这不是你需要的,但可以帮助解决问题。
答案 3 :(得分:2)
答案 4 :(得分:1)
您可以使用
进行搜索而无需替换:s/PATTERN//gc
然后按 n 跳过替换。如果找不到模式,您甚至不会被问到。
您也可以只突出当前行或行范围。