2011-05-06 67 views
0

使用> 1 Emacs(在> 1臺機器上),並且想要在恢復使用特定Emacs時檢查所有打開的緩衝區以進行更改(它們通過tramp/ssh遠程打開)。在Emacs中,我如何檢查所有打開的文件以進行更改?

不同的Emacs可能沒有打開完全相同的文件,但可能存在交叉。

不使用桌面模式或任何類似的flash(還)。

謝謝!

+0

我知道,當我保存任何緩衝,我會提示如果它已被遠程更改,但是我需要找出正確的解決方案。正如我將會保存並走開一樣,對我而言,理想的解決方案是重新打開所有打開的文件。 – 2011-05-06 04:02:13

+0

我懷疑你的用例是獨一無二的,沒有默認的解決方案。您可能希望查看運行list-buffers時未識別的緩衝區的識別方式。從那裏你可能能夠創建一個可以從任何會話/實例中查看的共享資源/文件。 – sbaker 2011-05-06 06:54:29

回答

0

如果我理解正確,如果在emacs之外修改了文件,您希望將任何緩衝區恢復爲其文件內容。

這裏有口齒不清的一個小片段,將循環通過未修改的緩衝區並重新加載從磁盤內容:

(require 'cl) 
(loop for buffer being the buffers 
     do (when 
      (and (not (buffer-modified-p buffer)) (buffer-file-name buffer)) 
      (switch-to-buffer buffer) 
      (revert-buffer nil t))) 
1

如果你想要緩衝區時,相關文件被另一個程序更改在Emacs恢復,那麼你應該看看
˚Fglobal-auto-revert-modeRET

相關問題