如何排除 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 冻结。不确定为什么会发生这种情况,但您可以试一试。如果这不起作用,我会尝试在挂起时传递命令。它会响应命令吗?