停止在Emacs启动时运行tramp-mode

11

我正在尝试使用tramp-mode,但现在好像无法摆脱它了.. 每次我启动emacs,它都会花费约20秒钟来进行各种与tramp相关的初始化操作..

tramp: Waiting 60s for prompt from remote shell
tramp: Setting up remote shell environment

我该如何卸载tramp?在我的~/.emacs.d中grep搜索什么也找不到,除了插件本身(似乎在任何地方都没有加载..)

我已经清除了最近的文件历史记录,但没有任何改变..


6
其他需要检查的事项:如果你启用了desktop.el,或者可能是custom.el的设置?我建议在你的.emacs文件中插入(message "here")语句,并检查Messages缓冲区,以追踪tramp在你的.emacs文件中的启动位置。 - Trey Jackson
1
你有对.emacs进行字节编译吗?也许你在移除tramp后忘记重新编译了? - Laurynas Biveinis
Trey:消息缓冲区提示很有帮助,谢谢! - dbr
4个回答

18

啊哈,我找到了tramp加载的位置:

Loading /Users/dbr/.recentf...done
Loading tramp-mode..

我的~/.recentf文件历史记录中有两个使用tramp打开的文件,删除它们会停止tramp的加载..

我刚找到了Emacs维基上解释这个问题的部分,

当使用TrampMode和recentf.el时,建议关闭recentf的清理功能,该功能尝试对所有可读文件进行状态检查并从最近访问的列表中删除它们。由于Tramp的存在,这需要recentf打开远程网站,这可能会在最不适当的时候阻止您的Emacs进程。

(require 'recentf)
(setq recentf-auto-cleanup 'never) ;; disable before we start recentf!
(recentf-mode 1)

4
另请参见:https://dev59.com/RkvSa4cB1Zd3GeqPdlZo,推荐的解决方案是 (setq recentf-keep '(file-remote-p file-readable-p))。 - Leo Alekseyev

6
另一种可能是如果您正在使用ido-mode,则会列出在~/.ido.last中。在这种情况下,解决方法只有“rm ~/.ido.last”。

3

听起来你正在通过tramp打开一个文件,并在启动时重新打开它。你需要设置emacs以恢复你的会话吗?


不,启动时出现的唯一缓冲区是消息和草稿,以及 tramp 进程(一个 ssh 和一个 scp)。 - dbr

2
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.

请注意,我没有尝试过这个方法,但希望它适用于你!

1
嗯,不对,(setq tramp-default-method "ftp") 似乎没有任何区别,M-x tramp-unload-tramp 也是一样(好吧,它可能会从内存中卸载,但不会从启动中)。 - dbr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接