vim中常见的编程任务是:
:s/some pattern/
做一些工作
n #
找到下一个条目
做一些工作
n #
找到下一个条目
...
现在,s/....
仅搜索当前文件。
有没有办法可以做到这一点,但是搜索文件的目录?对pwd
的子目录中的所有文件执行“s /.... /”,这些文件以的 .hpp 结尾> strong> .cpp ?
谢谢!
答案 0 :(得分:28)
您只需使用:grep
command:或者为了更完整地整合搜索工具,请使用grep.vim extension。
只需输入:help grep
即可获得Vim开箱即用的文档。
使用:grep foo *.?pp
应该做你想要的。
这将打开QuickFix list,就像您使用:make
获得的那样,可以跳转到找到的匹配项。
答案 1 :(得分: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"全球确认",墙(写全部),qall(全部)。要查看文件列表:ls top jump to next file:wn(write next)或:bn(buffer next)。顺便说一下,xargs在内存中管理大块文件,以便将错误传送给vim。
答案 2 :(得分:1)
有一个名为ctrlsf.vim的出色插件,可让您有效地在vim中进行搜索。
这是它的快照。挺酷的,不是吗?
例如,如果要在当前目录中搜索“ hello”之类的单词,安装后,只需输入:
:CtrlSF "hello"
然后您将得到期望的结果。
玩得开心!