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

时间:2011-11-30 05:34:41

标签: emacs

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

  1. M-x find-name-dired RET
  2. 选择项目的根
  3. 输入* .rb作为匹配的文件名
  4. 按“t”选择找到的所有文件
  5. 按“Q”(切换Q)开始搜索/替换
  6. 输入“transaction”作为查询,然后输入“invoice”作为替换
  7. 现在我循环浏览它为我打开的所有缓冲区,根据替换选择性地按“y”或“n”。当它完成时,它只是让我进入我改变的最后一个缓冲区。

    因此,点击C-z来查看emacs窗口并查看更改内容,显示没有保存任何文件,这是我所期望的。

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

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

    所以我尝试使用C-x C-b调出IBuffer。标记我要保存的所有文件,然后按“S”保存它们,此时显示“操作已完成;保存了27个缓冲区”。太棒了......除了git还在告诉我,emacs实际上什么都没有保存。

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

    Emacs 23。

1 个答案:

答案 0 :(得分:5)

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

Emacs贡献者非常敏感。

P.S。喜欢你在问题中提出的细节。