2011-03-09 2 views
6

글쓰기 조언을 배제하는 마이너 모드를 쓰고 있습니다. 실수를 강조하기 위해 오버레이를 사용하고 있습니다. 요점은 오버레이를 입력하면, 나는 자세한 내용을 표시 할 (지금 message와 함께,하지만 어쩌면 별도의 버퍼에.)커서가 emacs에서 오버레이로 들어갈 때 어떻게 프롬프트를 표시합니까?

help-echo 내가 원하는 거의,하지만 난 터미널에서 이맥스를 사용하고, help-echo은 포인트가 아니라 마우스 포인터 용입니다.

point-entered거의 내가 원하는,하지만 point-entered 오버레이 만 텍스트 속성에 영향을주지 않습니다이기도합니다.

오버레이는 내가 버퍼를 재분석 할 때 그들을 제거하기 쉽기 때문에 매력적으로 보였다. (나는 re-builder에서 무엇을 얻을 수 있는가?) 오버레이를 계속 사용해야하지만 오버레이를 찾기 위해 포인트 모션 후크를 사용해야한다. 프롬프트를 추출하여 표시 할 수 있습니까? 오버레이 대신 텍스트 속성을 사용해야합니까?

+2

나는 전문가는 아니지만, 오버레이가 더 많은 "쓰기 전용"을 의미하는 것으로 보인다. 포인트 모션 훅과 오버레이와 같은 기능을 사용하면 오버레이로 할 수있는 것처럼 보이지만 텍스트 속성은 더 관용적 일 수 있습니다. – dfan

답변

0

일부 아이디어는 auto-complete mode을 확인하십시오.

사람이 스크롤 할 수있는 지점에 메뉴가 표시됩니다. 이것은 당신이 원하는 것과 정확히 같지 않을 수도 있습니다 - 당신은 메뉴를 원하지 않는 것처럼 들리지만 - 코드를 들여다 보면 흥미로울 것입니다.

enter image description here

또한 툴팁 표시 방법 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. 
0

일반적으로 마우스가 여러 가지 이유로 귀하의 영역을 통과하기 때문에 마우스 움직임에 반응하는 것은 좋지 않습니다.

예를 들어 오른쪽 메뉴 버튼과 같이이 기능을 구현하는 것이 좋습니다.

오버레이 대 텍스트 속성의 경우 한 가지 차이점은 buffer-substring을 수행 할 때 텍스트 속성이 유지된다는 것입니다. 이는 아마도 원하는 것이 아닙니다. 또 다른 하나는 텍스트 속성이 상속 된 버퍼간에 공유된다는 것입니다 (거의 사용되지는 않지만).

+1

그는 마우스 움직임에 반응하려하지 않습니다. 그는 지적에 반응하고 싶다. – dfan

+0

내 실수. 그러나 점 운동에 대해서도 동일한 논증을 할 수 있습니다. – Lindydancer

+0

예 - 마우스 움직임이 아니라 포인트 이동에 반응하고 싶습니다. 저는 다른 이유로 인해 영역을 가로 지르는 지점에 대해 특별히 걱정하지 않습니다. 에코 텍스트는 비모수적이고 주변 장치입니다.그러나 나는 당신이 어떤 UI를 더 잘 생각하는지 궁금하다. ispell을 달리는 것 같은 것이 나에게 너무 무겁다. 나는 계속해서 미묘한 피드백을주고 싶다. –

0

cursor-sensor-mode (via Emacs-25)을 사용하면 cursor-sensor-functions 텍스트 속성 (via 오버레이 포함)에 작업을 배치 할 수 있습니다.

point-entered 속성을 대체하기위한 및 point의 움직임 (두 밀접하면서도 다른 관련된보다는 오히려 커서의 움직임에 반응한다 : 주어진 명령이 많은 번 내부적으로 포인트를 이동할 수 있지만, 커서 디스플레이가 업데이트 될 때 마지막에 한 번만 이동됩니다).

관련 문제