试图隐藏emacs左下角 “M-x ”、“Find-file ” 这一类提示,发现它们是由函数(minibuffer-prompt)
生成的,且带有个对应的face,customize-face RET minibuffer-prompt
。
尝试:
(add-hook 'minibuffer-setup-hook
(lambda()
(put 'minibuffer-prompt 'disable t)))
无效。
尝试:
(add-hook 'minibuffer-setup-hook
(lambda()
(fmakunbound 'minibuffer-prompt)))
也无效,不过 C-h f
倒是看不到(minibuffer-prompt)
了。
另外更换minibuffer-with-setup-hook
minibuffer-exit-hook
等hook也无效。
(minibuffer-prompt)
定义在:emacs/minibuf.c at 54b8ec4e6fb1eeac049e7bd68372e78c180fe8e4 · emacs-mirror/emacs · GitHub
就是截图中左下角 “M-x” 这一类提示呀。去掉 “M-x” 这一提示后,效果如下图:敲 M-x
之后minibuffer只有光标,没有“M-x”。
注:上面这一截图是通过图中的代码实现了“去掉M-x这一提示本身的read-only属性”,然后手动删掉“M-x”……
原因在这里:主要是为了模拟 company-mode的弹窗
问了reddit社区,有大佬给了提示:
(let ((minibuffer-prompt-properties (append '(invisible t) minibuffer-prompt-properties)))
(call-interactively #'execute-extended-command))
竟然想到给 minibuffer-prompt 多加一个 invisible 属性 我把它setq住就好了:
(setq minibuffer-prompt-properties
(append '(invisible t) minibuffer-prompt-properties))
对比这个帖子
貌似 “添加一个属性” 比 “修改原有属性” 更容易一些
3 个赞