Esiste un modo migliore per evidenziare tutti i simboli evidenziati in un buffer?
Da C-h f unhighlight-regexp, otteniamo
(unhighlight-regexp REGEXP)
Rimuovi l'evidenziazione di ogni partita su REGEXP impostato da hi-lock. Interattivo, richiede REGEXP, accettando solo regexps precedentemente inseriti da funzioni interattive hi-lock. Se REGEXP è t (o se Cu è stato specificato in modo interattivo), quindi rimuovere l'evidenziazione di hi-lock.
Ciò significa che si devono semplicemente chiamata unhighlight-regexpcon tcome argomento per rimuovere tutti hi-lock evidenziando nel buffer.
Se fosse una cosa una tantum, potrebbe essere fatto rapidamente da M-: (unhighlight-regexp t)o C-u M-s h u. Ma sembra che questo sia qualcosa che devi fare abbastanza spesso. In tal caso, è meglio racchiuderlo in una interactivefunzione e associarlo a un tasto.
Qui di seguito è una soluzione proposta in cui my/unhighlight-all-in-bufferè la funzione interattiva involucro ed è destinato a hUnel search-map. Di default il search-mapprefisso è M-s. Quindi ora, proprio come i M-s h ulanci unhighlight-regexp, M-s h U(nota la U maiuscola) 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)
Esiste un modo migliore per evidenziare un simbolo nel punto?
La cosa buona è che non è necessario posizionare il punto su un simbolo che è necessario evidenziare.
Basta chiamare M-x unhighlight-regexpo M-s h u(il suo binding predefinito) e premere M-p/ M-nfino a quando non si incontra la regexp del simbolo che è necessario deselezionare e premere Invio.