求助:如何批量替换counsel-rg搜索出来的结果呢

如题。如何对counsel-rg搜索出来的多个文件中的关键字进行批量的替换呢?

2 个赞

counsel-rg 出结果之后,按 C-c C-o 进入 ivy-occur,然后按 w 进入编辑模式,然后 M-x % 批量替换,然后 C-x C-s 保存。

7 个赞

可以参考 这篇文章 ,用里面的 replall-string-in-directory 或 replall-regexp-in-directory 函数。不过,不是用的counsel-rg,主要用search-forward查找替换。

楼上正解,忽略我。

好惊喜,竟然真有这样的功能。

这是大招。被称为核武器级别的技巧(Nuclear weapon multi-editing via Ivy and Ag · Samuel Barreto)。值得深入钻研。可以见 https://blog.binchen.org/posts/emacs-is-easy-if-you-read-code.html 研究相关的occur的技术。

5 个赞

@redguardtoo @BlindingDark 感谢二位的解答

@manateelazycat 有一个高端版本的叫 color-rg,也可以参考一下,这个不需要依赖 ivy 全家桶。

1 个赞

wgrep-change-to-wgrep-mode 帮助好大,感觉生命延长了一倍。

现在的工作流:grep-find, ivy-occur, wgrep-chage-mode, regex-replace.

1 个赞