2014-05-10 64 views
4

在Ubuntu 12.10上運行帶有Tramp(2.2.6-24.3)的Emacs(24.3.1)時,我將通過Tramp打開一堆遠程文件例如:Emacs Tramp暫停/恢復後保存並打開當前緩衝區

m-x find-file: /scp:[email protected]:~/file.txt 

在我的筆記本電腦上掛起/恢復循環後,我會回到Emacs並開始在開放緩衝區中工作。一旦我保存或自動保存它會凍結,並將顯示「參數超出範圍(000 - 000)」(這條消息來自內存,零表示它顯示的數字將在我下次編輯時編輯)錯誤並且不保存。任何後續嘗試都會掛起。

另外,我無法在find-file中使用相同協議打開任何其他文件,如上面'scp'中的情況。

我發現的一些解決方法是首先刪除〜/ .emacs.d/tramp文件,該文件有時會起作用,並且有多次在多次暫停/恢復週期後它不在那裏。

另一個解決方法是在打開文件時使用另一種協議,因此在上面的find-file行中,我將使用'ssh'或'scpc'。這僅用於打開新緩衝區,不用於保存當前緩衝區,所以我通常會關閉文件的緩衝區,然後使用我提到的不同協議重新打開它。

有什麼建議嗎?

回答

4

我還沒有看到「參數超出範圍」的錯誤,但是當我在連接中斷後掛起時,我通過查殺協議/主機的Tramp緩衝區來取得成功。它通常被命名爲*tramp/scpc hostname*。需要通信的文件緩衝區上的下一個操作將重新建立連接。

這對ido-switch-buffer非常簡單,因爲您可以在迷你緩衝區中完成所有操作 - 輸入幾個字母來查找Tramp緩衝區和C-k以殺死它。重置連接


的替代(也許清潔器)的方法是使用「MX流浪漢-清理-此連接」:

流浪漢-清理-這個連接是一個交互式自動加載編譯爲 `tramp-cmds.el'中的Lisp函數。

(流浪漢在清理這個連接)

刷新當前緩衝區的 連接的所有連接相關的對象。

另請參閱「M-x tramp-cleanup-all-connections」和「M-x tramp-cleanup-all-buffers」。

+0

剛剛有機會嘗試這個,它的工作。另外我注意到,它的工作後,我做了另一個暫停/恢復週期,它沒有掛......這樣工作,所以除非有其他人有永久修復這對我有效。謝謝@rhashimoto。 – justCookin

相關問題