【问题标题】:In vim, how can I replace recursively across multiple *.js files with :args and :argdo?在 vim 中,如何使用 :args 和 :argdo 在多个 *.js 文件中递归替换?
【发布时间】:2020-04-18 12:22:34
【问题描述】:

如标题所述:在 vim 中,如何使用 :args 和 :argdo 递归地替换多个 *.js 文件?

我发现了这个:

https://vi.stackexchange.com/questions/2776/vim-search-replace-all-files-in-current-project-folder

上面写着:

例如,:args **/*.rb 将递归搜索当前目录中的 ruby​​ 文件。

所以我做了一个(记住:我正在尝试以递归方式获取所有 javascript 文件)

:args **/*.js

但返回的只是目录中第一个 javascript 文件的 内容。没有显示其他文件,更不用说根目录和子文件夹中的 javascript 文件列表了。

我在这里错过了什么?

【问题讨论】:

  • :buffers 说什么?
  • buffers 实际上将它们(即相应的 js 文件)全部列出。
  • 所以你现在要做的就是 :argdo %s/search/replace/g :bufdo 也可以代替 :argdo
  • 是的,你是对的。我很困惑,因为我希望在调用 :args 时会显示一些列表。感谢您清除我的视图。

标签: recursion search vim replace


【解决方案1】:

你试过跑步吗?

:args

因为此时 vim 应该将所有 *.js 文件加载到它的 arglist 中。如果您的 arglist 已填充,您可以执行以下操作:

:silent argdo :%s/_params/params/ge | update

我还建议设置lazydraw :set lazyredraw,以防万一您正在运行宏,因为每次宏运行时它都会停止提供反馈。

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2013-05-26
    • 2012-03-12
    相关资源
    最近更新 更多