我想要一个弹出式底部窗口,用于临时缓冲区,例如编译、完成等。即使是根窗口,它也应该垂直分割整个框架被水平分割。例如: M-x 编译前:
+------+------+ | | | | | | | | | +------+------+
之后:
+------+------+ | | | +------+------+ | | +------+------+
我对 ecb-compilation-window 非常满意,但我不想使用 ECB 和 CEDET。 实际上,我看到有两种方法可以实现所描述的行为,但都有各自的缺点。
- 使用split-root.el模块。
缺点:它使用delete-other-windows函数,然后根据需要分割根窗口后重建以前的窗口树。它会使代码(或任何模块的代码)中对现有早期窗口的所有引用无效。
- 将 window-min-height 变量设置为其最小可能值 (1),并在创建后的 emacs 启动期间调用 split-window-vertically 最小化窗口高度。然后使用此窗口作为临时缓冲区,根据需要设置其高度。
缺点:烦人的小窗口,框架底部有烦人的模型行,不能与 emacs --daemon 一起使用。
有没有更优雅的方法来做到这一点没有缺点?
最佳答案
使用popwin !
它的行为正如您所描述的开箱即用,并且配置很简单,只需要一行就可以让我的任何缓冲区在屏幕底部弹出:
(push '("\*anything*" :regexp t :height 20) popwin:special-display-config)
日本博客上有一些更详细的配置示例,只需谷歌一下即可。
关于Emacs:临时缓冲区的弹出底部窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034839/