
透過 Linux 電腦透過 Windows 主機使用 Emacs 處理檔案的最快、最可靠的方法是什麼?我需要能夠在 Emacs 框架之間輕鬆複製和貼上文字並使用所有鍵盤快捷鍵。所以,Putty 和 Cygwin 是不可能的。我嘗試過 TRAMP 模式,但當我嘗試連接時它就會掛起。
答案1
流浪漢絕對是正確的答案。如果您對 TRAMP 有問題,請修復它。讓 TRAMP 在 Windows 下運行的最簡單方法是plink
、PuTTY 的 ssh 隧道和腳本組件。 Cygwinssh
是另一種可能性。
我遇到的一個問題是plink
強制TERM
環境變數為xterm
.這可能會導致您.profile
或其他登入腳本發出數據,認為它正在與終端對話,但這些數據會使您的腳本感到困惑。通常您會plink
使用-T
選項進行調用,告訴它不要模擬終端。在 Emacs 中,使用plinkx
Tramp 方法,該方法強制TERM
在dumb
遠端:
(if (eq system-type 'windows-nt)
(setq tramp-default-method "plinkx"))
在遠端,確保您的登入檔案不會發出任何輸出,例如$TERM
is時的提示dumb
。
答案2
我猜當你說「putty 和 cygwin 是不可能的」時,你的意思不是直接從 Cygwin 控制台或 PuTTY shell 使用 emacs,而是使用 ntemacs(Windows 版的 Emacs)來存取你的 Linux 機器。
好消息是這是可行的! :) 我一直在使用 ntemacs 和 Cygwin(用於 ssh 訪問)的組合,效果良好。
這是您需要做的。
安裝帶有 openssh 的 Cygwin(如果您不確定,那麼只需安裝所有內容)並設定您的 ssh,以便您可以無密碼地訪問您的 linux 盒子,請參閱這篇簡短而精彩的文章文章。
複製 Michael Cook 和 Klaus Berndl 的 cygwin-mount維基百科 並將其放置在 ~/.emacs.d/plugins/cygwin-mount 下(或第三方 emacs 軟體包所在的任何位置)。
在您的 .emacs 中,使用類似以下內容來啟動 cygwin-mount。
(add-to-list 'load-path "~/.emacs.d/plugins/cygwin-mount")
(defvar cygwin-bin-dir
"c:/cygwin/bin/"
"*Directory of Cygwin bin.")
(when (eq (window-system) 'w32)
(progn
(setenv "PATH" (concat cygwin-bin-dir ";" (getenv "PATH")))
(setq exec-path (cons cygwin-bin-dir exec-path))
(require 'cygwin-mount)
(cygwin-mount-activate)))
- 現在重新啟動 emacs 和 Cx Cf 並在迷你緩衝區中輸入「/sshx:your_host:」(注意尾隨的冒號)。如果一切順利,tramp/ssh 應該會啟動,您應該可以看到遠端目錄。
希望這可以幫助。
答案3
為什麼不在 Linux 機器上遠端運行 Emacs 並將其顯示在本機 X 視窗上,而不是在本機上執行 Emacs。
您需要什麼:
基本步驟:
- 在 Windows 上啟動 X Server
- 遠端啟動 Emacs 並將其顯示在本機 X Server 上。我通常使用 ssh 透過發出命令“ssh -X @ emacs”來執行此操作。或者,您可以登入 Linux 系統,設定 DISPLAY 變數(「export DISPLAY=:0」),然後啟動 emacs。