Emacs:临时缓冲区的弹出底部窗口

标签 emacs elisp

我想要一个弹出式底部窗口,用于临时缓冲区,例如编译完成等。即使是根窗口,它也应该垂直分割整个框架被水平分割。例如: M-x 编译前:

+------+------+
|      |      |
|      |      |
|      |      |
+------+------+

之后:

+------+------+
|      |      |
+------+------+
|             |
+------+------+

我对 ecb-compilation-window 非常满意,但我不想使用 ECB 和 CEDET。 实际上,我看到有两种方法可以实现所描述的行为,但都有各自的缺点。

缺点:它使用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/

相关文章:

emacs - 编译缓冲区以显示在垂直缓冲区中

Emacs 中的 Python(无模式,普通安装)

emacs - 如何使用 elisp 以惯用的方式就地转换一些文本?

logging - Emacs 口齿不清 : How to use ad-get-arg and ad-get-args?

emacs - 用换行符替换Emacs查询

emacs - emacs 无法识别子目录中的 info 文件

emacs - 如何在 Emacs 中以文档 View 模式向下滚动页面?

emacs - auto-mode-alist 指定 ~ 的子目录

emacs - 字节编译时警告: the function 'whitespace-mode' might not be defined at runtime

url - 如何在 Emacs Lisp 中 "URL decode"字符串?