2008-11-16 66 views
12

我想向emacs添加自定義工具提示。 更具體地說,每當我將鼠標懸停在一個符號(函數/變量)名稱 上時,我希望看到符號定義的工具提示。 我知道我可以用cscope等工具找到這種信息,但我不知道如何將cscope的輸出附加到工具提示。 沒有人有一個部分(如何將回調鏈接到一般的emacs中的工具提示)或 一個完整的(我如何將cscope的輸出實際鏈接到工具提示)解決方案嗎?在Emacs中定義新工具提示

感謝, 尼爾

回答

11

您的Emacs的安裝應包括Elisp reference manual(如果沒有,請立即下載 - 你要發展你的模式時,需要它)。要訪問它,請轉到Info(C-h i)並查找標有「Elisp」的節點,有時在單獨的「Emacs」菜單中。請輸入i索引,然後輸入tooltip查找有關工具提示的信息。您應該找到節點32.19.4 Properties with Special Meanings,它告訴您help-echo屬性的內容是一個字符串,它是工具提示內容,或者是一個可以動態構建工具提示的函數。探索該節點周圍的手冊,以瞭解更多關於文本屬性以及如何設置它們的信息。

這裏有一個簡單的例子:

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

鍵入以下到您的*scratch*緩衝區,然後按C-j運行代碼。然後將鼠標指向單詞「foo」,您應該看到工具提示。

+2

您能否解釋使用文本屬性而不是覆蓋層的優點/缺點? – sverrejoh 2009-05-25 07:45:38

1

an AutoOverlay package可以根據緩衝區文本的正則表達式自動添加疊加層以及與這些疊加層關聯的工具提示。