gpt4 book ai didi

Emacs - 抑制完成缓冲区

转载 作者:行者123 更新时间:2023-12-01 04:43:19 25 4
gpt4 key购买 nike

在 Emacs 中,我不希望 *Completions* 缓冲区弹出,即使我在 minibuffer 中按 Tab 键自动完成并且有多个结果。
这是令人分心和刺耳的。

我怎样才能做到这一点?

更好的是,我想要一种不会分散注意力或不和谐的替代方案——例如需要一个选项卡来自动完成(如果可用),但需要两个选项卡来打开完成缓冲区。这样,当我期待自动完成时,我不会得到 Completions 缓冲区。这就是 OS X 终端用来显示选项卡完成可能性的方式。

我认为原因是自动运行的 minibuffer-completion-help 命令,描述如下:https://www.gnu.org/software/emacs/manual/html_node/elisp/Completion-Commands.html

我使用 ido 和 smex,但问题也出现在 vanilla Emacs 中。

编辑:我找到了一个黑客来解决这个问题。使用 M-x find-function ,我找到并复制了minibuffer-completion-help的函数定义进入我的 .emacs.d/init.el文件。然后,我重命名了我复制的版本my-minibuffer-completion-help并更改 (with-displayed-buffer-window *Completions*'(with-displayed-buffer-window *Completions* (在前面放一个引号,所以它只是被解释为一个字符串。最后,我通过放置覆盖了对 minibuffer-completion-help 的调用

(advice-add 'minibuffer-completion-help
:override #'my-minibuffer-completion-help)

my-minibuffer-completion-help我的 .emacs.d/init.el 中的函数文件。一定会有更好的办法。

编辑 2:引用 (message "Making completion list...")my-minibuffer-completion-help具有消除自动完成期间闪烁的额外好处,该闪烁是由在自动完成期间闪烁另一条消息引起的。有没有可能以另一种方式做到这一点?

最佳答案

相信你只是想设置completion-auto-help为零:

(setq completion-auto-help nil)

关于Emacs - 抑制完成缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48876686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com