강조 표시에서 강조 표시된 기호를 강조 표시 해제하는 방법


13

highlight-symbol-at-point 그러나 기호를 강조 표시 해제하는 쉬운 방법을 찾지 못했습니다.

현재 unhighlight-regexp강조 표시된 각 심볼에 대해 반복해서 호출해야합니다 .

더 좋은 방법이 있습니까?

  • 버퍼에서 강조 표시된 모든 심볼을 강조 표시 해제
  • 지점에서 심볼을 강조 해제 하시겠습니까?

한 번에 모든 기호를 강조 표시해야합니까?
Kaushal Modi

대부분의 경우-그렇습니다. 경우에 따라 심볼을 강조 표시 해제하는 것도 유용합니다.
kostya

포인트 아래에서 심볼을 강조 표시하지 않거나 모든 심볼을 강조 표시하지 않으려면 답변이 달라집니다.
Kaushal Modi

질문을 업데이트했습니다
kostya

2
다음을 사용하여 강조 표시된 모든 심볼을 제거 할 수 있습니다M-x hi-lock-mode
Amir Karimi

답변:


10

버퍼에서 강조 표시된 모든 심볼을 강조 해제하는 더 좋은 방법이 있습니까?

에서 C-h f unhighlight-regexp우리는

(unlightlight-regexp REGEXP)

Hi-lock으로 설정된 REGEXP에 대한 각 일치 항목의 강조 표시를 제거하십시오. 대화식으로 REGEXP를 요청하면 이전에 hi-lock 대화식 기능으로 삽입 된 정규식 만 허용됩니다. REGEXP가 t (또는 Cu가 대화식으로 지정된 경우)이면 모든 하이 락 강조 표시를 제거하십시오.

즉 , 버퍼에서 모든 하이 락 강조 표시를 제거하기 위해 인수로 호출 unhighlight-regexp하면 t됩니다.

일회성 인 경우 M-: (unhighlight-regexp t)또는 로 신속하게 수행 할 수 있습니다 C-u M-s h u. 그러나 이것은 당신이 꽤 자주해야 할 일 인 것 같습니다. 이 경우 interactive함수 로 감싸서 키에 바인딩하는 것이 좋습니다.

다음은 제안 된 솔루션 my/unhighlight-all-in-buffer래퍼 대화 형 함수는 그것은에 바인딩 hUsearch-map. 기본적으로 search-map접두사는 M-s입니다. 그래서 지금, 마찬가지로 M-s h u출시 unhighlight-regexp, M-s h U출시 (자본 U를 참고) my/unhighlight-all-in-buffer.

(require 'hi-lock)        
(defun my/unhighlight-all-in-buffer ()
  "Remove all highlights made by `hi-lock' from the current buffer.
The same result can also be be achieved by \\[universal-argument] \\[unhighlight-regexp]."
  (interactive)
  (unhighlight-regexp t))
(define-key search-map "hU" #'my/unhighlight-all-in-buffer)

지점에서 심볼을 강조 해제하는 더 좋은 방법이 있습니까?

좋은 점은 강조 표시를 해제해야하는 기호에 포인트를 놓을 필요가 없다는 것입니다.

당신은 단순히 M-x unhighlight-regexp또는 M-s h u(기본 바인딩)을 호출 하고 강조 표시 해야하는 기호의 정규 표현식을 발견 할 때까지 M-p/ M-n를 누르고 Enter 키를 누르십시오.


4

또 다른 방법은 라이브러리 하이라이트 ( highlight.el), 명령 hlt-highlight-symbol-at-point및을 사용하는 것 hlt-unhighlight-symbol-at-point입니다.

기본값은 각각 C-x X h s및에 바인딩 C-x X u s됩니다. 강조 표시 및 강조 표시 해제 명령은 모두 C-x X기본적 으로 접두사 키 에 바인딩됩니다 . 강조 표시 명령은 접 두부 키를 사용합니다 C-x X h. 강조 표시 해제 명령은 접두사 키를 사용합니다 C-x X u. C-x X접두사 command에 바인딩하는 것 이외의 다른 접두사 키를 사용할 수 있습니다 hlt-map.

라이브러리에서 강조 표시 강조 표시는 오버레이 또는 텍스트 속성 (또는 둘 다)을 사용할 수 있습니다. 강조 표시된 얼굴 또는 색상은 자동으로 (사용자 정의 된 얼굴 및 색상 순서에서) 선택 될 수 있습니다.

강조 표시는 property를 사용 font-lock-face하여 글꼴 잠금 모드로 제어 할 수 있습니다 . 또는 property를 사용하여 제어 할 수 face없습니다. ( face글꼴 잠금을 사용하지 않는 버퍼에서 속성 을 사용 하여 강조 표시 할 수 있으며 글꼴 잠금 모드를 해제하면 강조 표시가 글꼴 잠금 버퍼에 유지됩니다.)


4

C-u C-x w r

(unhighlight-regexp REGEXP) (...) REGEXP가 t (또는 C-u 대화식으로 지정된 경우 )이면 모든 하이 락 강조 표시를 제거하십시오.


0

단일 기호가 강조 표시되지 않습니다.

(defun unhighlight-symbol-at-point ()
  "Remove highlight of symbol at point."
  (interactive)
  (unhighlight-regexp (concat "\\_<" (thing-at-point 'symbol) "\\_>")))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.