Emacs在多个文件中查找并替换正则表达式(find-name-dired + Q),不保存我的缓冲区?

d11*_*wtq 13 emacs

我无法弄清楚这里发生了什么.我已完成搜索并替换整个目录,使用:

  1. Mx find-name-dired RET
  2. 选择我的项目的根目录
  3. 输入*.rb作为要匹配的文件名
  4. 按"t"选择找到的所有文件
  5. 按"Q"(切换Q)开始搜索/替换
  6. 输入"transaction"作为查询,然后输入"invoice"作为替换

现在我循环浏览它为我打开的所有缓冲区,根据替换选择性地按"y"或"n".当它完成时,它只是让我进入我改变的最后一个缓冲区.

因此,按Cz来查看emacs窗口并查看更改内容,显示没有保存任何文件,这是我所期望的.

所以我做了M-x save-some-buffers RET,告诉我没有文件可以保存.所以我开始使用Cx b旋转我的缓冲区并确认,确实,缓冲区确实与磁盘上的内容相比有所变化.

所以我重复这个过程,这次是一个全新的emacs进程(当我启动进程时根本没有打开缓冲区).最后我有一堆缓冲区打开,有变化(我可以看到),再次,emacs说没有什么可以保存.

所以我尝试使用Cx Cb来调出IBuffer.标记我要保存的所有文件,然后按"S"保存它们,此时显示"操作已完成;保存了27个缓冲区".真棒......除了git还在告诉我,emacs实际上什么也没有保存.

我究竟做错了什么?我想在整个项目中用"invoice"替换"transaction",虽然我确实需要以交互方式进行,因为有些地方不应该进行替换.

Emacs 23.

eve*_*_jr 5

我已经责备你描述的行为了.对我来说,闻起来像臭虫.请在bug-gnu-emacs@gnu.org上报告.

Emacs贡献者非常敏感.

PS喜欢你在问题中提出的细节.