簡體   English   中英

當光標進入emacs中的疊加層時,如何顯示提示?

[英]How do I display a prompt when the cursor enters an overlay in emacs?

我正在寫一個小型模式,可以免除寫作建議。 我正在使用疊加來突出錯誤。 當點進入疊加層時,我想顯示更多細節(現在有message ,但可能在單獨的緩沖區中。)

help-echo 幾乎就是我想要的,但是我在終端中使用Gnu Emacs,而help-echo用於鼠標指針,而不是點。

point-entered幾乎是我想要的,但point-entered對疊加沒有任何影響,只有文本屬性。

疊加首先看起來很吸引人,因為當我重新分析緩沖區時很容易將它們刪除(我正在re-builder這里的內容。)我應該繼續使用疊加但是使用點運動掛鈎找到疊加層,提取提示,並顯示它們? 我應該使用文本屬性而不是疊加層嗎?

您可能想嘗試使用cursor-sensor-mode (這是Emacs-25中的新功能),它允許您對cursor-sensor-functions文本屬性(包括通過疊加)進行操作。

它的目的是取代point-entered性和反應的光標,而不是中移動的移動point (兩個密切相關的,但不同的:一個給定的命令可以在內部移動點很多次,但光標只會移動一次,在顯示更新結束時)。

有些想法,請查看自動完成模式

它彈出菜單,人們可以滾動瀏覽。 這可能不是你想要的 - 聽起來你不想要菜單 - 但是查看代碼可能會很有趣。

在此輸入圖像描述

另請參閱tooltip-show方法,tooltip.el的一部分。

tooltip-show is a compiled Lisp function in `tooltip.el'.

(tooltip-show TEXT &optional USE-ECHO-AREA)

Show a tooltip window displaying TEXT.

Text larger than `x-max-tooltip-size' is clipped.

If the alist in `tooltip-frame-parameters' includes `left' and `top'
parameters, they determine the x and y position where the tooltip
is displayed.  Otherwise, the tooltip pops at offsets specified by
`tooltip-x-offset' and `tooltip-y-offset' from the current mouse
position.

Optional second arg USE-ECHO-AREA non-nil means to show tooltip
in echo area.

一般來說,對鼠標移動做出反應並不是一個好的設計,因為鼠標很可能會因為很多原因而通過你的區域。

我建議你在例如右側菜單按鈕上實現它。

當涉及到覆蓋與文本屬性時 - 一個區別是在執行buffer-substring時保留了文本屬性,這可能不是你想要的。 另一個是文本屬性在繼承的緩沖區之間共享(即使這是一個很少使用的功能)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM