Mic*_*Wei 2 directory emacs replace
我需要替换目录中所有文件中的某个字符串,该目录的子目录中的文件也需要替换。有没有办法在 Emacs 中实现这一点?
交互式执行此操作的一种方法是获取所有文件的目录列表,标记您感兴趣的文件(可能是全部文件),然后对所有文件运行查询替换。
像这样的东西:
find-dired,使用参数-type f来获取文件而不是目录(您可以使用类似的类型在此处进一步过滤-type f -name "*.txt")。这将为您提供包含所有文件的可怕列表。query-replace-regexp对所有标记的文件运行 a 。S-Q如果查询替换顺利,您可以通过键入!继续而无需询问来加快速度。
我通常按照@lawlist 建议的方式执行此操作。这是一步一步的:
wgrep从 Melpa 或其他方式安装。我还建议
wgrep-ag,并ag如果您使用的银色搜索者。
使用M-x rgrep(或M-x ag) 搜索文件并获取可能更改的行列表。
在*grep*缓冲区中,运行M-x wgrep-change-to-wgrep-mode. 我将它绑定到C-x C-qin grep-mode-map。
使用query-replace-regexp( C-M-%),或在*grep*缓冲区中进行任何其他编辑
。
用 保存*grep*缓冲区C-x C-s。使用C-c C-k中止。更改仅存在于*grep*缓冲区中,直到您保存为止。您可以wgrep多次重新启用模式。
如果您保存了*grep*缓冲区,grep 搜索中的所有文件现在都有打开的缓冲区,并对其进行了修改。难道C-x s
要所有的人都保存到磁盘。
| 归档时间: |
|
| 查看次数: |
974 次 |
| 最近记录: |