커서가 설명 문자에 도달하지 못하거나 도달 할 수 없음


15

의 조합을 사용하여 같은 I describe-facecustomize-face내 작업 환경의 모양을 조정합니다. 커서로 도달 할 수없는 위치의면을 변경하려고 할 때이 워크 플로가 실패하는 경우가 있습니다. 대부분의 경우 솔루션에 대한 길을 추적하고 오류를 표시 할 수 있지만 때로는 멈출 수 있습니다 (예를 들어 어제까지 헤더 행이 존재한다는 것을 알지 못했습니다) .

커서로 도달 할 수없는 프레임에서 위치의면을 설명하는 편리한 방법이 있습니까? 예를 들어 마우스를 사용합니다.

답변:


7

마우스 사용에 대해서는 잘 모르지만 종종 실행하는 것이 가장 쉽다는 것을 알았습니다. list-faces-display그런 다음 얼굴이 무엇인지를 찾거나 시각적으로 동일한 텍스트를 시각적으로 검색합니다.


1
이것이 바로 답입니다. IMHO. 디스플레이는 WYSIWYG이며, 특정 얼굴에 대한 사용자 정의 버퍼에 직접 액세스하고 전체 설명에 직접 액세스 할 수 있습니다.
Drew

동의하고 상태를 변경했습니다. 다른 해결책은 시원하지만 편리하지는 않습니다.
remvee

9

Emacs에 텍스트가 표시 될 수있는 4 개의 영역이 있습니다. 각 영역을 검사하기 위해 수행 할 수있는 작업은 다음과 같습니다.

  • 모드 라인 :의 값을 참조하십시오 mode-line-format.
  • 헤더 라인 :의 값을 참조하십시오 header-line-format.
  • 버퍼 : 얼굴이 도달 할 수없는 버퍼 영역에 있으면 값을 참조하십시오 (buffer-string).
  • 미니 버퍼 : 포인트가 현재 미니 버퍼에 있으면 미니 버퍼M-: (buffer-string) 의 내용을 설명 할 수 있습니다. (setq enable-recursive-minibuffers to t)먼저 해야 할 수도 있습니다 .
  • 프린지 또는 마진 : 내가 아는 바가 없습니다.

이 방법을 사용하면 해당 지역의 전체 내용을 볼 수 있으므로 원하는 얼굴을 실제로 찾으려면 약간의 독서가 필요할 수 있지만 확실히있을 것입니다. 가장 중요한 것은 도달 할 수없는 지역을 설명합니다.
예를 들어, find-file프롬프트 에 어떤 얼굴이 사용되는지 알고 싶다고합시다 .

  1. 로 find-file을 호출하십시오 C-x C-f.
  2. 미니 버퍼로 M-: (buffer-string)

그것은 다음과 같은 결과를 줄 것이고, 바로 거기에 내가 찾고있는 얼굴이 있습니다.

#("Find file: ~/" 0 11 (front-sticky t rear-nonsticky t field t read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt))

흥미 롭습니다! 나는 몰랐다 (buffer-string). 그러나 "미니 버퍼에있는 동안 명령이 미니 버퍼를 사용하려고 시도했습니다"를 표시하지 않고 미니 버퍼에있는 동안 어떻게 호출합니까?
remvee

@remvee Ah, 변수 enable-recursive-minibuffers를 t로 설정
Malabarba

프린지는 어떻습니까?
Tikhon Jelvis

@TikhonJelvis 아, 좋은 지적입니다. 몰라요
Malabarba

나는 또한 마진을 남긴다고 생각합니까?
Sigma

3

실제로 마우스를 사용할 수 있음이 밝혀졌습니다 (이것이 정확히 당신이 찾고있는 것일 수도 있습니다).

  ;; based on: /emacs//a/19585/13444
  (defun brds/describe-char-at-mouse-click (click-event)
    "`describe-char' at CLICK-EVENT's position.
CLICK-EVENT should be a mouse-click event."
    (interactive "e")
    (run-hooks 'mouse-leave-buffer-hook)
    (let ((pos (cadr (event-start click-event))))
      (describe-char pos)))

  ;; <d>escribe
  (global-set-key (kbd "C-c d <down-mouse-1>")
                  #'brds/describe-char-at-mouse-click)

이것은 modeline에서 나에게 효과가없는 것 같습니다. 질문에 언급 된 어느 곳에서나 효과가 있습니까?
zck

magit-blame미니 버퍼 완성 후보, 미니 버퍼 프롬프트 및 회사 팝업뿐만 아니라 헤더에서도 작동합니다 . 그건 내가 모드 - 또는 헤더 라인에 전화를 할 때 어느 나를 위해 작동하지 않습니다 말했다 : 사람들은 내게 줄 (wrong-type-argument number-or-marker-p header-line)(또는 [...] mode-line각각). 나는 이것이 특별한 경우라고 생각합니다 (프린지와 마진과 함께).
braham-snyder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.