Чи є кращий спосіб висвітлити всі виділені символи в буфері?
От 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.