通过 Windows 主机使用 Linux 机器处理文件的最快、最可靠的方法是什么?我需要能够轻松地在 Emacs 框架之间复制和粘贴文本并使用所有键盘快捷键。因此,Putty 和 Cygwin 是不可能的。我尝试过 TRAMP 模式,但当我尝试连接时它就挂起了。
答案1
Tramp 绝对是正确的答案。如果您在使用 Tramp 时遇到问题,请修复它。在 Windows 下运行 Tramp 的最简单方法是使用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
是时提示dumb
。
答案2
我猜当您说“putty 和 cygwin 是不可能的”时,您的意思是不要直接从 Cygwin 控制台或 PuTTY shell 使用 emacs,而是使用 ntemacs(适用于 Windows 的 Emacs)和 tramp 访问您的 Linux 机器。
好消息是这是可行的!:) 我一直在使用 ntemacs 和 Cygwin(用于 ssh 访问)的组合,效果很好。
这是您需要做的。
安装 Cygwin 和 openssh(如果你不确定,那就安装所有东西)并设置 ssh,这样你就可以无密码访问你的 linux 机器,请参阅这个简短而有趣的文章。
复制 Michael Cook 和 Klaus Berndl 编写的 cygwin-mountemacswiki 并将其放在 ~/.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 窗口上呢?
你需要准备:
基本步骤:
- 在 Windows 上启动 X 服务器
- 远程启动 Emacs 并使其显示在本地 X 服务器上。我通常使用 ssh 通过发出命令“ssh -X @ emacs”来执行此操作。或者,您可以登录 Linux 框,设置 DISPLAY 变量(“export DISPLAY=:0”),然后启动 emacs。