Tramp模式比使用终端ssh慢得多


14

我在OSX Yosemite上使用的是Macports风格的Emacs,并且在没有任何解决方案的情况下,查看了Tramp上的每个线程都很慢。

可以使用陷阱,但每个动作之间大约有100毫秒的延迟。在服务器端这不是问题,因为如果我仅使用terminal / iTerm将ssh切换到同一服务器,则此延迟不存在。

我认为问题可能仅限于编辑文件,但事实证明它无处不在。无论我是仅使用远程外壳,还是仅按M-x(使用头盔),都被延迟了。

我已经尝试过ssh,scp和rsync作为连接方法,而没有任何解决方案。也尝试过ControlMaster auto没有任何效果。

还有其他人有这个问题,并且能够解决吗?


试图找到一个东西,这个答案,是唯一接近一个有用答案的东西:\
Nsukami _

2
Tramp具有扩展的日志记录功能。应用(setq tramp-verbose 6)并重新运行测试。将有一个详尽的Tramp调试缓冲区,每个条目都以时间戳记开头。在(6)条目之后浏览此缓冲区,它们是远程发送的命令,以及远程外壳程序的输出。检查是否有明显的延迟。顺便说一句,您正在使用哪个Tramp版本?用检查C-h v tramp-version
Michael Albinus 2015年

Answers:


14

原来,这是projectile这是造成问题。禁用残疾后,projectile-modeTRAMP 很快就滑腻了,我开始理解其背后的炒作。

希望这可以帮助其他人用尽所有其他选择。

如果您不想持续禁用弹丸,我发现的另一种解决方案是将该命令放在 init.el

(setq projectile-mode-line "Projectile")

事实证明,所有滞后都来自射弹,试图计算在模式行中作为项目名称放置的内容。这对我来说根本不是一个重要功能,因此您可以将其设置为“投射物”


您是如何调试的?我不认为这是使我的TRAMP放慢速度的弹头,但我还不确定100%。
亚当·斯皮尔斯

1
@AdamSpiers我只是尝试了一切,直到发现为止。如果您想以正确的方式进行操作,则可以尝试使用(setq tramp-verbose 6)其他建议的注释。
m0meni

我已经将其设置为7,并且还通过进行了配置elp-*。虽然很难理解结果。
亚当·斯皮尔斯

该问题在弹丸问题列表中被多次报告。看来commit 323fb8解决了它。我有多年这个问题了,但是自从我升级到射弹20171102.55以来,它就很好用了。
marcz

3

我还在流浪汉FAQ上找到了解决方案,该解决方案解决了加速流浪汉正常工作的问题。

在页面上,这是我添加到配置中的内容:

(setq remote-file-name-inhibit-cache nil)
(setq vc-ignore-dir-regexp
      (format "%s\\|%s"
                    vc-ignore-dir-regexp
                    tramp-file-name-regexp))
(setq tramp-verbose 1)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.