Ich möchte in Vim / gVim nach mehreren Zeichenfolgen suchen und diese in verschiedenen Farben hervorheben. Gibt es eine Möglichkeit, dies mit dem sofort einsatzbereiten Vim oder einem Plug-In zu tun?
Ich möchte in Vim / gVim nach mehreren Zeichenfolgen suchen und diese in verschiedenen Farben hervorheben. Gibt es eine Möglichkeit, dies mit dem sofort einsatzbereiten Vim oder einem Plug-In zu tun?
Antworten:
Versuchen Sie „ Markieren Sie mehrere Wörter “, die Anwendungen matchadd()
.
Es gibt zwei einfache Möglichkeiten, mehrere Wörter im vim-Editor hervorzuheben.
Wechseln Sie in den Suchmodus, dh geben Sie ' / ' ein, und geben Sie dann \ v gefolgt von den Wörtern ein, die Sie suchen möchten, getrennt durch ' | '(Rohr).
Z.B:/\vword1|word2|word3
Wechseln Sie in den Suchmodus und geben Sie die zu suchenden Wörter getrennt durch ' \ | ein '.
Z.B:/word1\|word2\|word3
Grundsätzlich versetzt Sie der erste Weg in den Modus für reguläre Ausdrücke, sodass Sie vor jeder Pipe oder anderen Trennzeichen, die für die Suche verwendet werden, keine zusätzlichen Schrägstriche einfügen müssen.
Dies kann manuell ohne Skript für zwei Suchmuster erfolgen.
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
Suchen ist der Name der Hervorhebungsgruppe. Verwenden Sie die Vervollständigung, um eine andere Gruppe auszuwählen, die mit einer anderen Farbe hervorgehoben werden soll.
:match <TAB>
:match <TAB> # completion will list all highlight group
Dies ist praktisch, wenn Sie keine eigene vim-Konfiguration verwenden können.
:match none # clear the match pattern to stop highlighting
Für die Suche nach mehreren Zeichenfolgen in vim haben Sie folgende Möglichkeiten:
/search1\|search2
Dies funktioniert und hebt beide search1
und hervor search2
, jedoch mit derselben Farbe. Sie müssen dies im vim-Editor tun.
Ja, sofort einsatzbereit matchadd()
.
Um ein Highlight hinzuzufügen, z. für nachgestellte Leerzeichen:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
So zeigen Sie alle Übereinstimmungen an:
:echo getmatches()
Um Übereinstimmungen zu entfernen, verwenden Sie matchdelete()
. Z.B.:
:call matchdelete(7)
MultipleSearch : Markieren Sie mehrere Suchvorgänge gleichzeitig mit jeweils einer anderen Farbe.
http://www.vim.org/scripts/script.php?script_id=479
:Search <pattern1> //will highlight all occurences of <pattern1> in the current buffer.
A subsequent :Search <pattern2> will highlight all occurences of <pattern2> in the current buffer.
Mein Mark-Plugin kann mehrere Wörter gleichzeitig in verschiedenen Farben hervorheben, wie z. B. die integrierte Suche. Es enthält viele Zuordnungen und Befehle, ermöglicht das Beibehalten der Muster und unterstützt mehrere Farbpaletten.
MultipleSearch2 ist ein weiteres Skript, das in die Suche von vim integriert ist: http://www.vim.org/scripts/script.php?script_id=1183
Ich bevorzuge das Hervorhebungs-Plugin, einfach und ausreichend, kann verschiedene Wörter mit unterschiedlichen Farben automatisch hervorheben.
\+m
(oder doppelklicken Sie) auf jedes Wort, das Sie (un) hervorheben möchten. Und Sie erhalten jedes Mal eine andere Farbe.