Чи є кращий спосіб висвітлити всі виділені символи в буфері?
От C-h f unhighlight-regexp, ми отримуємо
(Неяскраве світло-регепс REGEXP)
Видаліть підсвічування кожного матчу на REGEXP, встановленому hi-lock. В інтерактивному режимі запросіть REGEXP, приймаючи лише регулярні вирази, попередньо вставлені інтерактивними функціями hi-lock. Якщо REGEXP є t (або якщо Cu було вказано інтерактивно), тоді видаліть усі підсвічування високого блокування.
Це означає, що нам просто потрібно зателефонувати unhighlight-regexpіз tсвоїм аргументом, щоб видалити всі виділення в блоці hi-lock.
Якби це була разова річ, це можна було б швидко зробити M-: (unhighlight-regexp t)або C-u M-s h u. Але здається, що це те, що потрібно робити досить часто. У такому випадку краще загорнути його у interactiveфункцію та прив’язати до якогось клавіші.
Нижче пропонується рішення, де my/unhighlight-all-in-bufferє інтерактивна функція обгортки і вона пов'язана hUв search-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.