如何在vim中搜索选定的代码块

7

比如说,我想在函数块中查找特定的文本。

目前我使用的方法是,在函数括号内选择代码块,使用vi{命令将其复制并粘贴到新文件中。然后我会在新文件中使用 /<search-text> 命令来查找文本。

请问是否有更简单的方法?


在emacs中,我们可以使用narrow-to-region命令(更具体地说,是narrow-to-defun)。我相信vim有一些插件模拟了这种行为,并且名称相似。它基本上自动化了您现在手动操作的内容。 - Randy Morris
3个回答

12
vi{
:'<,'>g/foo/#

自动插入 '<,'> 范围。

请查看 :help range:help :g


:h cmdline-ranges:help range 更相关。 - voiger

6
我认为这可能是你要找的内容:
使用“/\%V搜索模式”应该可以在你选择要搜索的代码块后得到你想要的结果。你可以通过按v进入可视化模式,并移动光标以突出显示所要搜索的代码块。
参考链接:限制Vim中代码搜索范围

2

上周在vi.SE上已经有几乎完全相同的问题了

虽然\%V可以限制搜索到当前可视化选定的文本(这是您问题的确切答案,但不是您间接表达需求的答案),但选择当前函数比简单的vi{要复杂得多。完美而简单地选择当前函数需要编写脚本。这就是我在vi.SE上回答的地方。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接