如何解决 Aquamacs / Emacs 问题 - 使用 TRAMP 打开文件时出现问题

如何解决 Aquamacs / Emacs 问题 - 使用 TRAMP 打开文件时出现问题

如何排除 Aquamacs 故障,或者我猜标准 Emacs 故障排除技术也应该适用于 Aquamacs。在这种情况下,我只想提高日志记录级别,但我对其他可能性也很感兴趣,因为我刚刚习惯使用 Aquamacs/Emacs。

我遇到的实际问题是,有时通过 TRAMP(即 ssh)打开文件时,Aquamacs 会挂起。它似乎能够从远程服务器获取文件并通过 flymake 运行它(不适用于 tramp),但在新选项卡中打开文件之前停止执行任何操作。我没有收到任何错误/调试/信息消息。此后 Aquamacs 占用的 CPU 很少。继续的唯一方法是强制退出并重新开始。

答案1

我在 MacBook 上使用 Emacs/TRAMP 打开文件时也遇到了类似的问题。

您可以在文件中打开 TRAMP 调试~/.emacs

(setq tramp-verbose 10)

插入后,重新启动 Emacs 并尝试再次打开文件。当 TRAMP 冻结时,尝试点击C-G,然后将缓冲区 ( C-x b) 切换到*debug tramp/ssh REMOTEHOST*。检查是否存在问题。

在我的例子中,Tramp 的状态行被冻结了:

Tramp: Inserting `ssh:REMOTEHOST:/path/to/FILE'...done

Tramp 调试日志显示以下内容:

WARNING: terminal is not fully functional

我追踪到这个问题,因为我在 Mercurial 设置中打开了分页,并且less发出了警告TERM=dumb。这个问题在我的 中很容易修复~/.hgrc

[pager]
pager = LESS='FSRX' less -d

最后,只是为了好玩,这是我的文件中 TRAMP 设置~/.emacs,其中包含一些小调整以使运行速度更快:

;; Tramp (http://www.emacswiki.org/emacs/TrampMode) for remote files
(setq tramp-default-method "ssh")
;; Backup (file~) disabled and auto-save (#file#) locally to prevent delays in editing remote files
(add-to-list 'backup-directory-alist
             (cons tramp-file-name-regexp nil))
(setq tramp-auto-save-directory temporary-file-directory)

答案2

用来ps查找 Emacs 已启动的后台任务,在这种情况下ssh -e none REMOTEHOST...我确信您可能也可以在活动监视器中找到它(并且它也应该在那里被标记为 Aquamacs.app 的子进程)。

vayo:~ chris$ ps a | grep ssh
14687 s002  Ss+    0:00.04 ssh -e none REMOTEHOST
14694 s003  R+     0:00.01 grep ssh
14653 s007  S+     0:00.15 ssh REMOTEHOST

终止 Aquamacs 已启动的任务(就-e none我的情况而言)。

vayo:~ chris$ kill 14687

继续使用 Aquamacs。

答案3

使用 TRAMP 时我也遇到了类似的挂起。通常,将鼠标移到缓冲区上并单击其中的某个位置即可解除 TRAMP 冻结。不确定为什么会发生这种情况,但您可以试一试。如果这不起作用,我会尝试在挂起时传递命令。它会响应命令吗?

相关内容