Nikt nie wspomniał o symbol-overlay
trybie . Zasadniczo jest to lepsze przepisanie highlight-symbol-mode
. „Lepszy” jak w, nie zawiera błędów oryginalnego symbolu podświetlenia (takich jak tymczasowe zacinanie się podświetlenia lub znikanie tymczasowego podświetlenia w celu poruszania się wewnątrz podświetlonego słowa; lub brak możliwości podświetlenia symboli, takich jak *
) , lepiej zintegrowane i utrzymywane. Zobacz paragraf „Zalety” jego README.
Możesz go zainstalować jak zwykle za pomocą M-xpackage-install (pamiętaj, aby wcześniej zaktualizować listę pakietów za pomocą package-list-packages
) . Dla porównania, na dole załączyłem kod, którego używam, aby włączyć tryb i wyłączyć kilka bardziej zaawansowanych funkcji, których możesz lub nie chcesz.
Notepad ++ ma wygodną funkcję: jeśli wybierzesz słowo w tekście (niekoniecznie słowo kluczowe), słowo zostanie podświetlone w całym tekście. Czy można to zrobić również w Emacsie? A jeśli tak, to w jaki sposób?
Po włączeniu overlay-symbol
, wystąpienia na ekranie będą pokazywane dla każdego słowa, na które umieścisz kursor po przekroczeniusymbol-overlay-idle-time
limitu czasu (domyślnie czas oczekiwania wynosi 0,5 s, można go skonfigurować za pomocą zmiennej) . Jeśli słowo nie jest podświetlane, oznacza to, że na ekranie jest tylko jedno dopasowanie (to, na które umieściłeś kursor) , więc nie ma potrzeby podświetlania go.
Byłoby wspaniale, gdyby podświetlenia były trwałe, tj. Odsunięcie punktu od podświetlonego słowa nie powinno spowodować usunięcia podświetlenia.
Aby trwale podświetlić słowo pod kursorem, dostępna jest funkcja symbol-overlay-put
. Aby nie podkreślić, nazwij to jeszcze raz.
W moim przykładzie konfiguracji jest powiązany z klawiszem 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
symbol-overlay-mode
enable-symbol-overlay-mode)
(global-symbol-overlay-mode)
(global-set-key (kbd "s-`") 'symbol-overlay-put)
(setq symbol-overlay-ignore-functions nil)
(setq symbol-overlay-map (make-sparse-keymap))