vim有没有办法打开目录及其所有子目录中的所有.C和.H文件?

vim有没有办法打开目录及其所有子目录中的所有.C和.H文件?,vim,Vim,我想在vim中对大约20个*.C和*.H文件执行一个替换,我想同时打开它们。所有文件都分布在多个嵌套目录中,并且该命令在顶级父目录中执行。我是否可以仅使用vim来执行此操作,或者是否需要如图所示的“find”命令和“-p”选项 在项目的根目录下启动Vim: $ vim /path/to/project 将相关文件以递归方式添加到arglist: :argadd **/*.C **/*.H 请参见:h starstar和:h:argadd 对arglist中的每个文件执行替换: :argdo

我想在vim中对大约20个*.C和*.H文件执行一个替换,我想同时打开它们。所有文件都分布在多个嵌套目录中,并且该命令在顶级父目录中执行。我是否可以仅使用vim来执行此操作,或者是否需要如图所示的“find”命令和“-p”选项

  • 在项目的根目录下启动Vim:

    $ vim /path/to/project
    
  • 将相关文件以递归方式添加到arglist:

    :argadd **/*.C **/*.H
    
    请参见
    :h starstar
    :h:argadd

  • 对arglist中的每个文件执行替换:

    :argdo s/foo/bar/gc
    
    请参见
    :h argdo
    :h s_标志


  • 我现在在一个测试目录中尝试了这个方法,得到了“E37:No write-best change(add!to override)”错误。要么
    :set hidden
    ,然后用
    :wall
    保存它们,要么在
    :argdo
    命令中附加一个
    ;update
    。对不起,我假设
    set hidden