2013-03-05 71 views
4

我有一个输出文本到文件output.log的过程。有时候这个过程会删除文件并重新开始。Emacs中的文件自动刷新(不只是拖尾)

我想在Emacs中自动跟踪这个文件的内容。我之前使用过auto-revert-tail-mode,但是这个新输出附加到缓冲区,显示可能不在文件中的内容(例如,因为进程删除了以前的文件并创建了新的文件)。

似乎完成这项工作的唯一命令是C-x C-v RET(它在原始文件名上调用find-alternate-file),但我必须手动输入。

Emacs是否提供了任何内置机制来跟踪文件的内容?或者也许有办法让auto-revert-tail-mode添加一些标记来指示文件何时被删除并重新创建?

+1

Emacs永远不会令我惊叹。就在这个周末,我了解到你可以在其中做IRC,现在我发现它取代了'tail -f'。 – Collin 2013-03-05 20:39:11

回答

6

M-x auto-revert-mode应该做你正在寻找的东西。它更新文件的内容。当你觉得你必须手动完成时,你可以使用emacs宏(M-x kmacro-start-macro)并将它绑定到一个键上。

2

还有M-x global-auto-revert-modeauto-revert-mode应用于所有新缓冲区,以防万一您忘记它。您可以将它设置为.emacs(global-auto-revert-mode 1)