繁体   English   中英

如何防止 emacs 错误消息窗口窃取焦点并需要额外步骤才能解除?

[英]How can I prevent an emacs error message window from stealing focus and requiring extra steps to dismiss?

我在终端中使用普通的 emacs 并且喜欢这样(对我来说没有 spacemacs 或 gui emacs)。 在 gui 版本中,错误消息会在浮动窗口中弹出,我认为可以解决。 在我的设置中,它们在一个新的拆分窗口中打开并窃取焦点。 为了摆脱它,我必须将指针移回我的代码窗口,然后,如果我想要我的代码窗口全宽,通过删除另一个带有绑定的错误窗口(将错误窗口保留在缓冲区中)来最大化代码窗口列表供参考)。 一条简单的错误消息需要大量的击键。 理想情况下,我不希望在代码出现时失去焦点,并使用单个绑定消除错误消息窗口(但将其保留在缓冲区列表中以供参考......理想情况下能够以它的方式调用它最初出现[在一个分裂,没有窃取焦点] 与另一个绑定?

如果有焦点,则可以使用 Cx 0(删除窗口)关闭错误窗口,但是如果之前您在水平拆分中打开了两个窗口,则错误会出现在另一个窗口中,并关闭错误窗口删除您之前的拆分。 我创建了许多不可预测的配置,因此使用窗口排列器对我来说无法恢复一些预配置的窗口排列。

我怎么能做到这一点?

您可以通过将两个苹果酒配置变量设置为nil来禁用此行为:

cider-show-error-buffercider-auto-select-error-buffer ,

这将阻止默认行为,仍然允许您在需要时使用cider-selector手动选择错误缓冲区。

我仍然发现使用popw​​in包更方便,将错误缓冲区显示为弹出窗口,而不会破坏您的窗口布局。

(push "*cider-error*" popwin:special-display-config)

不确定您在开发 Clojure/脚本时提到的错误是否是编译错误,但根据我的经验(我也在终端中使用 Emacs),您只需按q即可消除错误消息,它将关闭框架并移动光标回到原来的框架。

这是我的经历的简短视频: https : //imgur.com/a/9jzr4yb

我也试过它有不止一个框架,它按预期工作:它只拆分代码编辑器框架以显示错误; 如果您消除错误,它将删除新框架并保留您现有的布局。

一种选择是启用winner-mode并将winner-undo / winner-redo绑定到要在窗口配置之间循环的键。 错误弹出新帧后,只需调用一次winner-undo即可恢复先前的配置。 这也为您提供了使用winner-redo调用错误配置所需的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM