如何将可点击的文本放入 emacs minibuffer 中?
例如,这段代码在文本缓冲区中生成可点击的文本,它对我来说效果很好。
(let ((map (make-sparse-keymap)))
(define-key map (kbd "<down-mouse-1>")
'(lambda() (interactive) (message-box "it works!")))
(add-text-properties 1 5 `(keymap, map
mouse-face highlight)))
但是,类似的迷你缓冲区代码无法正常工作
[...]
(with-current-buffer (window-buffer (minibuffer-window))
(message "link")
(add-text-properties (point-at-bol) (point-at-eol)
`(keymap, map
mouse-face highlight))))
结果,文本被放入没有这些属性的迷你缓冲区中。 我也尝试过(属性化但结果是相同的。
[...]
(message (propertize "link"
'mouse-face 'highlight
'keymap map)))
这有什么问题吗?
谢谢
最佳答案
消息
写入回显区域,而不是写入迷你缓冲区。迷你缓冲区未激活。即使您使用
insert
而不是message
,您也不会看到其中的文本。
你真正想做的是什么?您想要在迷你缓冲区中插入此类属性化文本的上下文是什么?例如,当读取输入时,迷你缓冲区处于事件状态。您可以开始阅读并在文本处于事件状态时将文本插入其中。
关于emacs - emacs 迷你缓冲区中的可点击文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440013/