今天使用 Putty 来远程编辑代码,因为一些原因,代码没有办法下载到本地编辑,自然也没有办法上传,只能在 Putty 下用 Emacs 编辑。在 Putty 下用 Emacs 真痛苦,默认情况下 M-v 这个快捷键无法使用,并且自己大量 Emacs 配置文件也没有办法使用,相信 secureCTR 也存在类似快捷键冲突的情况。看来只好使用 Emacs Tramp 来远程编辑文件了。

1. 安装 Putty

Putty 就没什么好说的,直接下载安装吧。

2. 添加 Putty 安装目录到系统 PATH 里

把 Putty 的安装目录添加到 Windows 系统的 PATH 变量里:

C:\Program Files\PuTTY

以便 Emacs 可以找到 plink.exe 这个可执行文件。

3. 在 Emacs 配置文件里,添加有关 tramp 的使用代码

Emacs 配置文件里,添加下面的 elisp 代码:

(require 'tramp)
(setq tramp-auto-save-directory "c:\\tmp")
(setq tramp-default-method "plink")

4. 使用 Tramp

直接使用命令 M-x find-file 或是 C-x C-f 就可以打开远程文件,在打开的时候,文件路径按如下形式输入:

/usr@machine:/path/to/file

例如访问远程的 ~/main.c 文件,则使用以下路径打开文件:

/water@192.168.1.20:/home/water/main.c

有的主机 ssh 服务是映射在另外的端口上的,如果远程主机的 ssh 端口有变化,则可以使用类似下面的 URL 来打开文件:

/test@host#2222:/tmp

即用 # 来分隔端口,在 # 后紧跟端口号即可实现指定端口连接。

有关远程文件和目录的编辑方法,和本地文件编辑完全一样。剩下的事情和使用 Emacs 编辑本地的文件或目录差不多,大家用用就熟悉了。

5. 题外话

虽然 Emacs Tramp 对于编辑远程 Linux 主机上的文件来说还算方便,不过建议大家最好还是想办法把远程文件下载下来在本地编辑,这样你不但可以使用 Emacs,还可以使用其它任意称手的工具(比如 Visual Studio,WinMerge)进行代码修改、备份、合并,岂不快哉?!