Existe uma maneira melhor de destacar todos os símbolos destacados em um buffer?
De C-h f unhighlight-regexp, temos
(REGEXP de unhighlight-regexp)
Remova o realce de cada correspondência para REGEXP definido por hi-lock. Interativamente, solicite REGEXP, aceitando apenas regexps inseridos anteriormente por funções interativas hi-lock. Se REGEXP for t (ou se Cu foi especificado interativamente), remova todo o destaque do hi-lock.
Isso significa que nós simplesmente necessidade de chamar unhighlight-regexpcom tcomo seu argumento para remover todos os oi-lock destacando no buffer.
Se fosse algo único, poderia ser feito rapidamente por M-: (unhighlight-regexp t)ou C-u M-s h u. Mas parece que isso é algo que você precisa fazer com bastante frequência. Nesse caso, é melhor agrupá-lo em uma interactivefunção e vinculá-lo a alguma chave.
Abaixo está uma solução proposta em que my/unhighlight-all-in-bufferestá a função interativa do wrapper e está vinculada hUa search-map. Por padrão, o search-mapprefixo é M-s. Então, agora, assim como M-s h ulançamentos unhighlight-regexp, M-s h U(note a capital U) lançamentos 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)
Existe uma maneira melhor de destacar um símbolo no momento?
O bom é que você não precisa colocar o ponto em um símbolo que precisa destacar.
Você simplesmente chama M-x unhighlight-regexpou M-s h u(sua ligação padrão) e pressiona M-p/ M-naté encontrar a expressão regular do símbolo que precisa destacar, e pressione Enter.