program story

Emacs 버퍼에서 단어의 모든 발생을 강조하는 방법은 무엇입니까?

inputbox 2020. 10. 18. 09:24
반응형

Emacs 버퍼에서 단어의 모든 발생을 강조하는 방법은 무엇입니까?


Notepad ++에는 편리한 기능이 있습니다. 텍스트에서 단어 (반드시 키워드가 아님)를 선택하면 해당 단어가 텍스트 전체에서 강조 표시됩니다. Emacs에서도 가능합니까? 그렇다면 어떻게?

Notepad ++와 똑같이 작동 할 필요는 없습니다 (즉, 선택을 통해). 이상적으로는 커서 아래의 모든 단어가 강조 표시되도록하는 키 바인딩을 설정하고 싶습니다.

강조 표시가 영구적 인 경우, 즉 강조 표시된 단어에서 포인트를 멀리 이동 해도 강조 표시가 제거 되지 않는 것이 좋습니다.

또한 사용자 지정 키 바인딩을 사용하여 강조 표시 사이를 탐색 할 수있는 솔루션이있는 경우 유용합니다.


http://nschum.de/src/emacs/highlight-symbol/의 highlight-symbol.el 이 당신이 찾고있는 것입니다.

대체 텍스트


hi-lock제안 좋다. M-x그래도 버전 을 사용하는 것이 더 쉽다고 생각합니다 .

M-x highlight-regexp RET <REGEXP>

M-x highlight-phrase RET <REGEXP>

highlight-phrasehighlight-regexp대소 문자를 무시하고 임의의 공백과 일치하도록 정규식의 공백을 변환 하는 약간의 설탕 입니다. 능숙한.


을 입력 C-s한 다음 현재 단어를 입력하거나 입력 C-w합니다. 보너스로 이제 C-s다시 눌러 단어를 검색 할 수 있습니다 .

이를 증분 검색 이라고 합니다.


내가 사용하는 것은 유휴 강조 표시입니다.

http://www.emacswiki.org/emacs/IdleHighlight

Mx idle-highlight는 포인트 아래의 단어 버퍼에서 모든 발생을 강조하는 유휴 타이머를 설정합니다.

모든 프로그래밍 모드에 대해 활성화하려면 다음에서 수행하십시오 ~/.emacs.d/init.el.

;; highlight words
(add-hook 'prog-mode-hook (lambda () (idle-highlight-mode t)))

라이트 기호 는 모든 기호 지점이 끝났음을 강조합니다.

또는 regexp와 일치하는 모든 행을 나열 하는 발생 을 사용할 수 있습니다 . 클래스의 모든 함수를 빠르게 확인하는 것이 유용합니다.


http://www.emacswiki.org/emacs/msearch.el을 사용해보십시오 . 커서로 선택한 모든 텍스트가 강조 표시됩니다. 강조 할 문자열 위로 드래그해야합니다. 따라서 강조 표시를 변경하지 않고 선택을 쉽게 변경할 수 있습니다.

문자열의 강조 표시를 유지하려면 고정 할 수 있습니다.

버퍼를 다른 버퍼에 종속시킬 수 있습니다. 마스터 버퍼에서 선택한 텍스트는 슬레이브 버퍼에서도 강조 표시됩니다. 이는 버퍼를 비교하는 데 유용합니다. 또한 다른 버퍼의 텍스트를 조사하는 동안 한 버퍼에 메모를 작성하는 데 유용합니다. 노트 버퍼에 키워드 모음이있을 수 있습니다. 이러한 키워드 위로 드래그하면 조사 된 텍스트에서 해당 키워드가 강조 표시됩니다.

나는 지금이 물건을 몇 년 동안 사용하고 있습니다. 나는 최근에 냉동을 추가했습니다. 그래서 뭔가 고장 났을 수도 있습니다. 이 경우 http://www.emacswiki.org/emacs/msearch 또는 여기 에 메모를 남겨주세요 .


이것은 당신이 원하는 것만 큼 좋지 않을 수도 있지만

(global-hi-lock-mode 1)

당신의 .emacs파일 당신은 입력 할 수 있습니다 C-x w h REGEX <RET> <RET>모든 차례 나오는 강조 REGEX하고, C-x w r REGEX <RET>다시 unhighlight 할 수 있습니다. 다시 말하지만, 당신이 원하는만큼 우아하지는 않지만 작동 할 것입니다.


인터랙티브 하이라이트 확인

해야한다:

C- x w h단어<RET> <RET>


라이브러리의 명령을 highlight.el사용하면 오버레이 또는 텍스트 속성을 사용하여 정규 표현식 (이 경우 기호)과 일치하는 텍스트를 강조 표시 할 수 있습니다. 발생 사이를 순환 할 수 있습니다. 강조 표시는 일시적이거나 영구적 일 수 있습니다. (추가 정보) .


iedit를 사용해보십시오 . 포인트에서 단어를 강조 표시하고 모든 항목을 쉽게 편집 할 수 있습니다. 추가 키 입력 (C- ')을 사용하면 해당 단어가없는 모든 행을 숨 깁니다. 매우 편리합니다!


아무도 symbol-overlay모드를 언급하지 않았습니다 . 기본적으로 더 나은 재 작성입니다 highlight-symbol-mode. 같이 "더 나은"는, 원래의 하이라이트 심볼의 버그 부족 (같은 하이라이트 상징 할 수있는 여부 등 임시 하이라이트가 붙어지고, 또는 임시 하이라이트는 강조 단어 내부 이동 사라지는 등 *) , 더 나은 통합, 유지합니다. README의 "장점"단락을 참조하십시오.

당신과 함께, 평소와 같이 설치할 수 있습니다 M-xpackage-install (와 사전 업데이트 패키지 목록에 있는지 확인하십시오 package-list-packages) . 참고로 게시물 하단에는 모드를 활성화하는 내 구성의 코드가 있습니다.

Notepad++ has a convenient feature: if you select a word in your text (not necessarily a keyword), the word is highlighted throughout the text. Can this be done in Emacs as well? And if so, how?

Once you enable overlay-symbol, occurrences on the screen will be shown for every word that you put cursor upon after a timeout (timeout by default is 0.5s, can be configured with symbol-overlay-idle-time variable). If a word don't get highlighted, this means there's just one match on the screen (the one you put cursor upon), hence there's no need to highlight it.

It would be great if the highlights were permanent, i.e., moving point away from a highlighted word should not cause the highlight to be removed.

커서 아래에있는 단어를 영구적으로 강조 표시하는 기능이 symbol-overlay-put있습니다. 강조 표시를 해제하려면 다시 한 번 호출하십시오.

내 구성 예제에서는 Logo+ `키에 바인딩되어 있습니다.


(require 'symbol-overlay)
(defun enable-symbol-overlay-mode ()
  (unless (or (minibufferp)
              (derived-mode-p 'magit-mode)
              (derived-mode-p 'xref--xref-buffer-mode))
    (symbol-overlay-mode t)))
(define-global-minor-mode global-symbol-overlay-mode ;; name of the new global mode
  symbol-overlay-mode                                ;; name of the minor mode
  enable-symbol-overlay-mode)
(global-symbol-overlay-mode)                         ;; enable it
(global-set-key (kbd "s-`") 'symbol-overlay-put)
(setq symbol-overlay-map (make-sparse-keymap))       ;; disable special cmds on overlays

강조 표시되지 않을 수 있지만 입력 할 필요없이 단어를 검색합니다.

검색하려는 단어 인 CS에 도달하면 CW로 전체 단어를 읽은 다음 CS를 사용할 수 있으며 검색합니다. 내 Emacs에서는 문서의 모든 인스턴스도 강조 표시합니다.


Melpa works에서 사용할 수있는이 패키지는 하이라이트 스타일도 사용자 지정할 수 있습니다.

https://github.com/ignacy/idle-highlight-in-visible-buffers-mode

참고 URL : https://stackoverflow.com/questions/385661/how-to-highlight-all-occurrences-of-a-word-in-an-emacs-buffer

반응형