使用> 1 Emacs(在> 1臺機器上),並且想要在恢復使用特定Emacs時檢查所有打開的緩衝區以進行更改(它們通過tramp/ssh遠程打開)。在Emacs中,我如何檢查所有打開的文件以進行更改?
不同的Emacs可能沒有打開完全相同的文件,但可能存在交叉。
不使用桌面模式或任何類似的flash(還)。
謝謝!
使用> 1 Emacs(在> 1臺機器上),並且想要在恢復使用特定Emacs時檢查所有打開的緩衝區以進行更改(它們通過tramp/ssh遠程打開)。在Emacs中,我如何檢查所有打開的文件以進行更改?
不同的Emacs可能沒有打開完全相同的文件,但可能存在交叉。
不使用桌面模式或任何類似的flash(還)。
謝謝!
如果我理解正確,如果在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)))
如果你想要緩衝區時,相關文件被另一個程序更改在Emacs恢復,那麼你應該看看
章˚Fglobal-auto-revert-mode
RET
我知道,當我保存任何緩衝,我會提示如果它已被遠程更改,但是我需要找出正確的解決方案。正如我將會保存並走開一樣,對我而言,理想的解決方案是重新打開所有打開的文件。 – 2011-05-06 04:02:13
我懷疑你的用例是獨一無二的,沒有默認的解決方案。您可能希望查看運行list-buffers時未識別的緩衝區的識別方式。從那裏你可能能夠創建一個可以從任何會話/實例中查看的共享資源/文件。 – sbaker 2011-05-06 06:54:29