Gibt es eine bessere Möglichkeit, alle hervorgehobenen Symbole in einem Puffer zu deaktivieren?
Von C-h f unhighlight-regexpbekommen wir
(unhighlight-regexp REGEXP)
Entfernen Sie die Hervorhebungen der einzelnen Übereinstimmungen von REGEXP, die mit Hi-Lock festgelegt wurden. Interaktiv: Fordern Sie zur Eingabe von REGEXP auf und akzeptieren Sie nur reguläre Ausdrücke, die zuvor von interaktiven High-Lock-Funktionen eingefügt wurden. Wenn REGEXP t ist (oder wenn Cu interaktiv angegeben wurde), entfernen Sie alle High-Lock-Hervorhebungen.
Das bedeutet, dass wir einfach unhighlight-regexpmit tals Argument aufrufen müssen, um alle High-Lock-Hervorhebungen im Puffer zu entfernen.
Wenn es eine einmalige Sache wäre, könnte sie schnell von M-: (unhighlight-regexp t)oder erledigt werden C-u M-s h u. Aber es scheint, dass Sie dies ziemlich oft tun müssen. In diesem Fall ist es besser, sie in eine interactiveFunktion einzubinden und an eine Taste zu binden.
Nachfolgend finden Sie eine vorgeschlagene Lösung, bei der my/unhighlight-all-in-bufferes sich um die interaktive Wrapperfunktion handelt, an die hUin der gebunden ist search-map. Standardmäßig search-maplautet das Präfix M-s. So, jetzt, wie M-s h ustartet unhighlight-regexp, startet M-s h U(beachten Sie die Hauptstadt 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)
Gibt es eine bessere Möglichkeit, ein Symbol an einem Punkt hervorzuheben?
Das Gute ist, dass Sie den Punkt nicht auf einem Symbol platzieren müssen, das Sie deaktivieren möchten.
Sie rufen einfach M-x unhighlight-regexpoder M-s h u(die Standardbindung) auf und drücken M-p/, M-nbis Sie auf den regulären Ausdruck des Symbols stoßen, das Sie deaktivieren möchten, und drücken die Eingabetaste.