從 Windows 在 emacs 上編輯遠端 Linux 檔案的最佳方法

從 Windows 在 emacs 上編輯遠端 Linux 檔案的最佳方法

透過 Linux 電腦透過 Windows 主機使用 Emacs 處理檔案的最快、最可靠的方法是什麼?我需要能夠在 Emacs 框架之間輕鬆複製和貼上文字並使用所有鍵盤快捷鍵。所以,Putty 和 Cygwin 是不可能的。我嘗試過 TRAMP 模式,但當我嘗試連接時它就會掛起。

答案1

流浪漢絕對是正確的答案。如果您對 TRAMP 有問題,請修復它。讓 TRAMP 在 Windows 下運行的最簡單方法是plink、PuTTY 的 ssh 隧道和腳本組件。 Cygwinssh是另一種可能性。

我遇到的一個問題是plink強制TERM環境變數為xterm.這可能會導致您.profile或其他登入腳本發出數據,認為它正在與終端對話,但這些數據會使您的腳本感到困惑。通常您會plink使用-T選項進行調用,告訴它不要模擬終端。在 Emacs 中,使用plinkxTramp 方法,該方法強制TERMdumb遠端:

(if (eq system-type 'windows-nt)
    (setq tramp-default-method "plinkx"))

在遠端,確保您的登入檔案不會發出任何輸出,例如$TERMis時的提示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。

您需要什麼:

  • X Server for Windows:一些可能的免費解決方案包括小明,西格溫/X (我知道,你說過沒有 Cygwin。)
  • Linux 主機上的 Emacs
  • 一種啟動遠端命令的方法(例如 ssh)

基本步驟:

  1. 在 Windows 上啟動 X Server
  2. 遠端啟動 Emacs 並將其顯示在本機 X Server 上。我通常使用 ssh 透過發出命令“ssh -X @ emacs”來執行此操作。或者,您可以登入 Linux 系統,設定 DISPLAY 變數(「export DISPLAY=:0」),然後啟動 emacs。

相關內容