Czy istnieje lepszy sposób na wyróżnienie wszystkich podświetlonych symboli w buforze?
Od C-h f unhighlight-regexp, rozumiemy
(unhighlight-regexp REGEXP)
Usuń zaznaczenie każdego dopasowania do zestawu REGEXP przez hi-lock. Interaktywnie pytaj o REGEXP, akceptuj tylko wyrażenia regularne poprzednio wstawione przez interaktywne funkcje hi-lock. Jeśli REGEXP to t (lub jeśli Cu określono interaktywnie), usuń wszystkie podświetlenia hi-lock.
Oznacza to, że po prostu musimy zadzwonić unhighlight-regexpz targumentem, aby usunąć wszystkie podświetlenia hi-lock w buforze.
Gdyby to była jednorazowa rzecz, można to szybko zrobić za pomocą M-: (unhighlight-regexp t)lub C-u M-s h u. Wygląda jednak na to, że trzeba to robić dość często. W takim przypadku lepiej jest zawinąć go w interactivefunkcję i przypisać do jakiegoś klawisza.
Poniżej znajdują się proponowane rozwiązanie, gdzie my/unhighlight-all-in-bufferjest interaktywny funkcja otoki i jest związana hUw search-map. Domyślnie search-mapprefiks to M-s. Więc teraz, tak jak M-s h uszalup unhighlight-regexp, M-s h U(uwaga na kapitał U) uruchamia 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)
Czy istnieje lepszy sposób na wyróżnienie symbolu w punkcie?
Dobrą rzeczą jest to, że nie musisz umieszczać punktu na symbolu, który musisz odznaczyć.
Po prostu wywołujesz M-x unhighlight-regexplub M-s h u(jego domyślne wiązanie) i naciskasz M-p/ M-ndopóki nie natrafisz na wyrażenie regularne symbolu, którego chcesz odznaczyć, i naciskasz Enter.