Notepad ++ bietet eine praktische Funktion: Wenn Sie ein Wort in Ihrem Text auswählen (nicht unbedingt ein Schlüsselwort), wird das Wort im gesamten Text hervorgehoben. Kann das auch in Emacs gemacht werden? Und wenn ja, wie?
Es muss nicht unbedingt genau wie Notepad ++ funktionieren (dh über Auswahl); Im Idealfall möchte ich eine Tastenkombination einrichten, mit der alle Vorkommen des Wortes unter dem Cursor hervorgehoben werden.
Es wäre toll , wenn die Höhepunkte permanent waren, dh Punkt bewegt von einem markierten Wort weg sollte nicht das Highlight verursacht entfernt werden.
Es wäre auch nützlich, wenn es eine Lösung gäbe, die es ermöglicht, zwischen Markierungen zu navigieren (mithilfe benutzerdefinierter Tastenkombinationen).
quelle
Die
hi-lock
Vorschläge sind gut. Ich denke, es ist einfacher, die M-xVersionen zu verwenden :M-x
highlight-regexp
RET<REGEXP>
M-x
highlight-phrase
RET<REGEXP>
highlight-phrase
ist nur ein bisschen Zuckerhighlight-regexp
, der Groß- und Kleinschreibung ignoriert und ein Leerzeichen in der Regex übersetzt, um mit beliebigen Leerzeichen übereinzustimmen. Praktisch.quelle
M-x unhighligh-regex
Tastenakkord:C-x w r
... Bei Hervorhebungsphrasen wird die Groß- und Kleinschreibung nicht vollständig berücksichtigt. Nur anfängliche Kleinbuchstaben (von Wörtern) haben die Groß- und Kleinschreibung nicht berücksichtigt. (Ich nehme an, es war beabsichtigt, sich mitfred
vs zu befassenFred
) .. zB erzeugt es einen[Cc]at[ ]+[Dd]og
unhighlight-regexp
anstelle vonunhighligh-regex
(fehltt
undp
) sein.Geben Sie ein
C-s
und geben Sie dann das aktuelle Wort oder den aktuellen Typ einC-w
. Als Bonus können Sie jetztC-s
erneut drücken, um nach dem Wort zu suchen.Dies wird als inkrementelle Suche bezeichnet .
quelle
M-x highlight-regexp
Lösung (und habe sie an eine Verknüpfung gebunden).Was ich benutze, ist Leerlauf-Highlight
http://www.emacswiki.org/emacs/IdleHighlight
So aktivieren Sie es für alle Programmiermodi
~/.emacs.d/init.el
:;; highlight words (add-hook 'prog-mode-hook (lambda () (idle-highlight-mode t)))
quelle
Das Lichtsymbol hebt jeden Symbolpunkt hervor, der vorbei ist.
Alternativ können Sie auftreten verwenden , um alle Zeilen aufzulisten, die einem regulären Ausdruck entsprechen. Es ist nützlich, schnell alle Funktionen in einer Klasse zu sehen.
quelle
Versuchen Sie es mit http://www.emacswiki.org/emacs/msearch.el. Alle Vorkommen des mit dem Cursor ausgewählten Texts werden hervorgehoben. Sie müssen über die Zeichenfolge ziehen, die Sie hervorheben möchten. Auf diese Weise können Sie die Auswahl einfach ändern, ohne die Hervorhebung zu ändern.
Wenn Sie die Hervorhebung einer Zeichenfolge beibehalten möchten, können Sie sie einfrieren.
Sie können einen Puffer in einen anderen Puffer versklaven. Im Master-Puffer ausgewählter Text wird auch im Slave-Puffer hervorgehoben. Dies ist nützlich, um Puffer zu vergleichen. Es ist auch nützlich, um Notizen in einem Puffer zu machen, während Sie den Text in einem anderen untersuchen. Sie können eine Sammlung von Schlüsselwörtern im Notizenpuffer haben. Ziehen Sie über ein solches Schlüsselwort, und seine Vorkommen im untersuchten Text werden hervorgehoben.
Ich benutze dieses Zeug seit Jahren. Ich habe das Einfrieren vor kurzem hinzugefügt. Vielleicht ist etwas kaputt. Wenn dies der Fall ist, hinterlassen Sie mir eine Nachricht auf http://www.emacswiki.org/emacs/msearch oder hier.
quelle
Das ist vielleicht nicht so schön wie das, was Sie sich erhofft hatten, aber wenn Sie es sagen
(global-hi-lock-mode 1)
In Ihre
.emacs
Datei können Sie dannC-x w h REGEX <RET> <RET>
eingeben, um alle Vorkommen von hervorzuhebenREGEX
undC-x w r REGEX <RET>
sie wieder aufzuheben. Wieder nicht so elegant, wie Sie wahrscheinlich möchten, aber es wird funktionieren.quelle
Überprüfen Sie die interaktive Hervorhebung
Sollte sein:
C- x w hWort<RET> <RET>
quelle
Niemand erwähnte den
symbol-overlay
Modus . Es ist im Grunde eine bessere Umschreibung vonhighlight-symbol-mode
. "Besser" wie in, es fehlen Fehler des ursprünglichen Hervorhebungssymbols (z. B. temporäres Hervorheben bleibt hängen oder das temporäre Hervorheben verschwindet, um sich innerhalb des hervorgehobenen Wortes zu bewegen, oder es können Symbole wie nicht hervorgehoben werden*
) , besser integriert und beibehalten. Siehe Abschnitt "Vorteile" in der README-Datei.Sie können es wie gewohnt mit installieren M-xpackage-install (stellen Sie sicher, dass Sie die Paketliste vorher mit aktualisieren
package-list-packages
) . Als Referenz habe ich unten Code angehängt, mit dem ich den Modus aktiviere und einige der erweiterten Funktionen deaktiviere, die Sie möglicherweise möchten oder nicht.Nach dem Aktivieren
overlay-symbol
werden Vorkommen auf dem Bildschirm für jedes Wort angezeigt, auf das Sie nach einer Zeitüberschreitung den Cursor setzen (die Zeitüberschreitung beträgt standardmäßig 0,5 Sekunden und kann mit einersymbol-overlay-idle-time
Variablen konfiguriert werden) . Wenn ein Wort nicht hervorgehoben wird, bedeutet dies, dass nur eine Übereinstimmung auf dem Bildschirm angezeigt wird (die, auf die Sie den Cursor setzen) , sodass Sie es nicht hervorheben müssen.Um das Wort unter dem Cursor dauerhaft hervorzuheben, gibt es eine Funktion
symbol-overlay-put
. Zum Hervorheben rufen Sie es noch einmal auf.In meinem Konfigurationsbeispiel ist es an die Taste Logo+ gebunden `.
(require 'symbol-overlay) (defun enable-symbol-overlay-mode () (unless (or (minibufferp) (derived-mode-p 'magit-mode) (derived-mode-p 'xref--xref-buffer-mode)) (symbol-overlay-mode t))) (define-global-minor-mode global-symbol-overlay-mode ;; name of the new global mode symbol-overlay-mode ;; name of the minor mode enable-symbol-overlay-mode) (global-symbol-overlay-mode) ;; enable it (global-set-key (kbd "s-`") 'symbol-overlay-put) (setq symbol-overlay-ignore-functions nil) ;; don't ignore keywords in various languages (setq symbol-overlay-map (make-sparse-keymap)) ;; disable special cmds on overlays
quelle
symbol-overlay-mode
war genau das, wonach ich gesucht habe. Das Bindensymbol-overlay-put
an eine F-Taste ist praktisch, um die Hervorhebung eines bestimmten Wortes in der Datei umzuschalten.Mit Befehlen in der Bibliothek können
highlight.el
Sie Text, der einem regulären Ausdruck (in diesem Fall einem Symbol) entspricht, mithilfe von Überlagerungen oder Texteigenschaften (un) hervorheben. Sie können zwischen den Ereignissen wechseln. Das Hervorheben kann vorübergehend oder dauerhaft sein. (mehr Infos) .quelle
Versuchen Sie es mit iedit . Es hebt das Wort an einer bestimmten Stelle hervor und ermöglicht es Ihnen, alle Vorkommen einfach zu bearbeiten. Mit einem zusätzlichen Tastendruck (C- ') werden alle Zeilen ohne dieses Wort ausgeblendet. Sehr praktisch!
quelle
Dies wird möglicherweise nicht hervorgehoben, sondern sucht nach einem Wort, ohne dass Sie es eingeben müssen ...
Wenn Sie das Wort erreicht haben, nach dem Sie suchen möchten, CS, dann lesen Sie das vollständige Wort mit CW, dann können Sie CS und es wird danach suchen. In meinem Emacs werden auch alle Instanzen im Dokument hervorgehoben.
quelle
Mit diesem in Melpa verfügbaren Paket können Sie auch den Hervorhebungsstil anpassen.
https://github.com/ignacy/idle-highlight-in-visible-buffers-mode
quelle