32

我在 vim 中的一个常见编程任务是:

:s/some pattern/

做一些工作

n #找到下一个条目

做一些工作

n #找到下一个条目...

现在,s/....只在当前文件中搜索。

有没有办法可以做到这一点,但在文件目录中搜索?pwd对以 .hpp结尾的子目录中的所有文件说“s /..../.cpp

谢谢!

4

3 回答 3

34

您可以简单地使用:grep命令:或者为了更完整地集成搜索工具,使用grep.vim 扩展名

只需键入:help grep即可获得有关 Vim 开箱即用功能的良好文档。使用:grep foo *.?pp应该做你想做的事。这将打开QuickFix 列表,就像您使用的一样:make,可以跳转到找到的事件。

于 2010-02-03T09:34:21.297 回答
5

有一个很棒的插件叫做ctrlsf.vim,它可以让你在 vim 中高效地搜索。

这是它的快照。很酷,不是吗?

在此处输入图像描述

例如,如果您想在当前目录中搜索“hello”之类的词,安装后,您只需输入:</p>

:CtrlSF "hello"

那么你会得到你所期望的。

玩得开心!

于 2018-11-07T01:21:32.363 回答
3
:help windo
:help bufdo
man find
man xargs

find ./start/point -iname "*.cpp" -print0 | xargs -0 vim
:bufdo s/baar/foo/gc
:wall
:qall

gc "global confirm", wall (写所有), qall (相当全部)。查看文件列表 :ls top 跳转到下一个文件 :wn (下一个写入)或 :bn (下一个缓冲区)。顺便说一句,xargs 管理内存中的大块文件以毫无错误地传递给 vim。

于 2011-12-13T10:09:37.563 回答