projectile-find-file该怎么搭配ivy-occur批量修改文件名

另一种办法,dired中有一个函数

find-lisp-find-dired

这玩意儿能找到指定目录里面,所有文件名匹配正则的文件。比如你的这个如果需要重命名所有py文件,调用后输入 .*.py$

关键是,这些找到的文件,都放到一个dired的buffer中的。

dired中重命名就方便了。我喜欢用 dired-toggle-read-only,默认绑定到 C-x C-q。 执行后,dired的buffer就可以修改了。这个方法就很多啦,query-replace-regexp这些就足够了。

改好之后,直接 C-c C-c (调用函数wdired-finish-edit)提交就好啦。

如果改了后反悔了,就用 C-c C-k(调用 wdired-abort-changes)取消即可。

BTW: find-lisp-find-dired这个函数是内置的,不过它是同步的,也就是说,如果你的目录中的文件比较多,emacs就卡住了。针对这个,懒猫大神搞了一个异步的玩意儿: Emacs: grep-dired 快速文件过滤和重构工具 。推荐试用一下 :slight_smile: