emacs - 在 Emacs 中,如何更改 minibuffer 完成列表窗口?

标签 emacs elisp

我想为 minibuffer 完成列表设置一个特定的窗口。目前,我在此配置中有 3 个窗口:

 ______
|    | |
|____| |
|____|_|

在这种情况下,我想将左下角的窗口用于迷你缓冲区完成列表。

目前好像是随机的一个窗口,而且大部分时候喜欢用最右边的窗口,太薄了,不能横向滚动显示完成列表,很烦人。

另外,我正在使用一个名为 revive.el 的 lisp 脚本。当我加载 Emacs 时,从文件 (~/.revive.el) 恢复我的窗口配置。

最佳答案

开始尝试使用的路径后minibuffer-scroll-window (结果不是用户可定制的)。我试过这种方法:

(add-to-list 'special-display-buffer-names '("*Completions*" my-display-completions))

(defun my-display-completions (buf)
  "put the *completions* buffer in the right spot"
  (let ((windows (delete (minibuffer-window) (window-list))))
    (if (eq 1 (length windows))
        (progn 
          (select-window (car windows))
          (split-window-vertically)))
    (let ((target-window (window-at 0 (- (frame-height) 2)))
          (pop-up-windows t))
      (set-window-buffer target-window buf)
      target-window)))

这是通过将唯一窗口一分为二并显示 *Completions* 来实现的。在底部窗口中,或者,如果已经显示了 2 个或更多窗口,则使用左下角的窗口显示 *Completions* .

关于emacs - 在 Emacs 中,如何更改 minibuffer 完成列表窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900372/

相关文章:

emacs - 粗体属性不起作用

emacs - 如何在 Emacs 中进行缓冲区本地键绑定(bind)?

elisp - Emacs Lisp : evaluate variable in alist

emacs - Elisp 在 progn 上使用 apply 函数列表

emacs - 右 ALT 键在 emacs 中不能用作元键

session - Emacs 有哪些备用 session 管理器可用?

python - 如何在 fgallina 的 python.el 中启用自动缩进

emacs - 创建或重用现有的 Emacs GUI 框架

xml - Elisp 解析 XML,然后搜索特定值

emacs - 在'emacs --deamon'之后,我在emacsclient框架中看不到新主题。从'emacs M-x server-start'开始工作