Categories

Disable TRAMP on Windows

TRAMP 是 Emacs 的一个很重要的组件,可以用于无缝地处理 ssh 、ftp 等远程文件编辑(甚至远程编译、调试等),还包括本地的 sudo 编辑文件等,总之是一个很强大的组件。今天要写这篇关于禁用 TRAMP 的文章,让我一时觉得真是光阴荏苒。

第一是关于 Emacs ,因为我实际上已经好久没有用 Emacs 了,有时候发现不知为什么好像在有意无意地避开它。不过最近编辑 LaTeX 文件比较多,尝试了很多编辑器,最后还是忆起 Emacs 的 cdlatex.el 最趁手,用其他的编辑器来写 TeX 简直就是体力活,所以即使在 Windows 下,也还是决定再启用 Emacs 。第二是关于 TRAMP ,我曾经是很喜欢这个东西的,因为它确实是很好用,如果在中文 Google 上搜索 Emacs TRAMP 的话,第一条的结果依然还是我很古老的那个 blog 上 4 年前的那篇半翻译半整理的文章

不过这次我真的要禁用 TRAMP 了,因为我是在 Windows 下用 Emacs ,包括 ssh 、sudo 等功能都处于鸡肋或者非常难以配置的状态,而且我也不需要,毕竟我的目的就是编辑 TeX 文件。当然,最主要的原因还是它速度太慢,启动之后第一次按下 C-x C-f 打开文件,总是会在 mini-buffer 显示 loading tramp… 然后卡住好几分钟。

我不知道它为什么会这么卡,不过这么 fancy 的东西在 Windows 上比较卡也许也是正常,因为我还开着 ido-mode 呢,或许 Windows 路径里的盘符看着像 ssh 主机地址的 URL 吧,总之现在我只是想禁用它。在我写了上面提到的那篇文章之后不久,TRAMP 成功进入了 Emacs 核心,成为重要组件,结果似乎没有什么比较直接的禁用方法。我搜索了一下,发现网上有讨论说可以有一个选项让 TRAMP 把操作交给 ange-ftp 去做,就能达到间接禁用的目的了。结果下面就有人跟帖说,真好!这么重要的信息应该写到随 Emacs 发布的那个 NEWS 文件里去。后面有人又跟帖说,已经在里面了,祝你好运。 😀

然后这个其实已经写入到 TRAMP 的 FAQ 里去了,在最后一条:

How can I disable tramp?

Shame on you, why did you read until now?

If you just want to have Ange-FTP as default remote files access package, you should apply the following code:

(setq tramp-default-method "ftp")

Unloading tramp can be achieved by applying M-x tramp-unload-tramp. This resets also the Ange-FTP plugins.

用了这个方法之后其实也没有完全禁用 TRAMP ,不过现在速度确实变快了很多。原本我以为把 file-name-handler-alist 设置成空就可以完全杜绝,后来发现还是不行。Emacs 果然还是非常深奥啊,不过现在至少是能忍了。 :p

8 comments to Disable TRAMP on Windows