如何将迷你缓冲区中的iswitch缓冲区名称限制为1行(在osx上升级emacs 24.1后行为已更改)?

daj*_*daj 3 macos emacs iswitchb-mode emacs24

当我在OSX上升级到(vanilla)emacs 24.1时,使用iswitch进行切换缓冲区的行为似乎有所不同.

当我按ctrl-x b来切换缓冲区时,不是将缓冲区列表限制为1行,而是通过将迷你缓冲区扩展为几行来显示每个缓冲区,然后在我输入缓冲区名称时逐步删除缓冲区我正在转向.

我发现每当我切换缓冲区时,状态栏和迷你缓冲区都会上下颠簸,以便在视觉上分散注意力,所以我想恢复之前的行为,这会切断1行后的缓冲区名称.我该怎么做呢?

Kei*_*wer 5

如果要全局限制迷你缓冲区使用的行数到一行,这应该有效:

(setq max-mini-window-height 1)
Run Code Online (Sandbox Code Playgroud)

文档中的其他信息:

变量max-mini-window-height控制调整迷你缓冲窗口大小的最大高度.浮点数指定帧高度的一小部分; 整数指定最大行数; nil表示不自动调整迷你缓冲区窗口的大小.默认值为0.25.

但是,如果您只想限制iswitchb使用的迷你缓冲行数,则iswitchb-minibuffer-setup-hook 的文档建议:

Iswitchb特定的迷你缓冲区设置定制.

如果`iswitchb'处于活动状态,则在迷你缓冲区设置期间运行此挂钩.例如:

(add-hook 'iswitchb-minibuffer-setup-hook
    (lambda ()
        (set (make-local-variable 'max-mini-window-height) 3)))
Run Code Online (Sandbox Code Playgroud)

当iswitchb运行时,将迷你缓冲区限制在3行的最大高度.