Gibt es eine bessere Möglichkeit, alle hervorgehobenen Symbole in einem Puffer zu deaktivieren?
Von C-h f unhighlight-regexp
bekommen 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-regexp
mit t
als 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 interactive
Funktion einzubinden und an eine Taste zu binden.
Nachfolgend finden Sie eine vorgeschlagene Lösung, bei der my/unhighlight-all-in-buffer
es sich um die interaktive Wrapperfunktion handelt, an die hU
in der gebunden ist search-map
. Standardmäßig search-map
lautet das Präfix M-s
. So, jetzt, wie M-s h u
startet 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-regexp
oder M-s h u
(die Standardbindung) auf und drücken M-p
/, M-n
bis Sie auf den regulären Ausdruck des Symbols stoßen, das Sie deaktivieren möchten, und drücken die Eingabetaste.