在Emacs中定义新的工具提示

14
我希望为Emacs添加自定义工具提示。更具体地说,每当我将鼠标悬停在符号(函数/变量)名称上时,我想看到一个工具提示,其中包含符号的定义。我知道可以使用类似于cscope的工具找到这种信息,但我不知道如何将cscope的输出附加到工具提示中。有人有部分(通用情况下如何链接回调到Emacs工具提示)或完整的(如何将cscope的输出实际链接到工具提示)解决方案吗?谢谢,Nir
2个回答

13

你的Emacs安装应该包括Elisp参考手册(如果没有,请现在下载 - 在开发模式时需要它)。要访问它,进入Info(C-h i),并查找标记为“Elisp”的节点,有时在单独的“Emacs”菜单中。输入i以打开索引,并输入tooltip以查找关于工具提示的信息。您应该找到32.19.4 具有特殊意义的属性节点,其中告诉您help-echo属性的内容是字符串,即工具提示内容,或者可以动态构造工具提示的函数。探索该节点周围的手册,以了解有关文本属性及其设置方式的更多信息。

这里是一个简单的示例:

(insert (propertize "foo\n" 'help-echo "Tooltip!"))

*scratch*缓冲区中输入以下内容,然后按C-j运行代码。然后将鼠标指向单词“foo”,您应该会看到工具提示。


3
可以介绍一下使用文本属性和覆盖物的优缺点吗? - sverrejoh

2

有一个AutoOverlay软件包可以根据缓冲区文本的正则表达式匹配自动添加叠加层和与这些叠加层相关的工具提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接