Vim im Ex-Modus (auch bekannt als ex
) ist nützlich, wenn:
- Sie müssen (mehrere) Dateien nicht interaktiv bearbeiten (als Teil des Skripts).
- Ihre Verbindung ist sehr langsam oder der Bildschirm wird nach Ihren Aktionen nicht aktualisiert.
- Zuordnungen und Abkürzungen sind deaktiviert.
- Allgemeine Schlüssel wie Escapeoder Controlfunktionieren nicht richtig.
Bearbeiten von Dateien nicht interaktiv ist die häufigste Nutzung und die Menschen es in ähnlicher Weise verwenden, wie sed
und awk
aber sind sie mehr Strom ausgerichtet sind - sie die Datei nur darauf, von Anfang an lesen zu beenden, während vim
Puffer ausgerichtet sind - Sie vorwärts und rückwärts bewegen können in der Datei wie Sie möchten. Zweitens sind die regulären Ausdrücke von vim leistungsfähiger als die Ausdrücke von awk und sed (sie sind nicht dafür ausgelegt, mit mehreren Zeilen zu arbeiten) - zum Beispiel kann vim über mehrere Zeilen passen und unterstützt keine Übereinstimmungen.
Ex ist auch ein Editor (direkter Vorgänger von vi) und emuliert im Vim-Ex-Modus ex
(es wird immer noch derselbe Code ausgeführt). Es ist also möglich, den Befehlsmodus ex
von vi und umgekehrt aufzurufen. Es gibt den Ex-Modus ( vim -e
) und den verbesserten Ex-Modus, der erweiterte Befehle als den vi-kompatiblen Ex-Modus ( vim -E
) ermöglicht. Siehe: Was ist der Unterschied zwischen Ex-Modus und verbessertem Ex-Modus?
Ex ist die Wurzel einer Redaktionsfamilie: Edit, Ex und VI. Ex ist ein Super-Set von ed, wobei die bemerkenswerteste Erweiterung eine Anzeige-Bearbeitungsfunktion ist. ex (1)
Beispiel 1
Hier ein einfaches Beispiel 127
, 128
wie Sie Ihre hosts
Datei ändern und die Ausgabe drucken können:
ex -s +%s/127/128/g +%p +q! /etc/hosts
ist äquivalent zu:
sed s/127/128/g /etc/hosts
Für eine fortschrittlichere Lösung haben Sie möglicherweise eine Datei mit vim-Befehlen und verwenden diese für einen klassischeren Ansatz für die E / A-Umleitung:
echo :%s/127/128/g > cmds.vim echo :%print >> cmds.vim echo :%quit! >> cmds.vim ex -s /etc/hosts < cmds.vim # The same as: vim -s cmds.vim /etc/hosts
Beispiel 2
Sie können auch vim Plugins verwenden, um einige Aufgaben auszuführen.
Beispielsweise würde der folgende Einzeiler Ihre Quellcodedatei mithilfe eines der Standard-Plugins in HTML konvertieren:
ex -s '+let g:html_no_progress=1' '+syntax on' '+set ft=c' '+runtime syntax/2html.vim' -cwqa my_code.c
Es generiert eine HTML-Datei (mit Syntaxhervorhebung) aus Ihrem Code (in einer beliebigen unterstützten Sprache geschrieben), die zum Drucken oder zur Veröffentlichung auf Ihrer Website bereit ist.
Beispiel 3
Oder ein echtes Live-Beispiel aus der RPM- Spezifikation:
vim -E -s Makefile <<-EOF :%substitute/CFLAGS = -g$/CFLAGS =-fPIC -DPIC -g/ :%substitute/CFLAGS =$/CFLAGS =-fPIC -DPIC/ :%substitute/ADAFLAGS =$/ADAFLAGS =-fPIC -DPIC/ :update :quit EOF
Beispiel 4
Das folgende Skript erstellt eine neue HTML-Datei, indem HTML von der Beispiel-Site heruntergeladen und durch eine automatisch generierte 20x20-Tabelle durch Zufallszahlen ersetzt wird:
" table.vim %!curl -s example.com let @t='<table>'.repeat('<tr>'.repeat('<td>_</td>',20).'</tr>',20).'</table>' /<body norm!vitd"tP %s/_/\=system('echo $RANDOM')/g wq
Verwendungszweck:
ex -s table.html < table.vim
Dies funktioniert auf * nix-ähnlichen Systemen, auf denen curl installiert ist. Hinzufügen -V
, um das Skript in Aktion zu sehen.
Mehr Beispiele:
Siehe auch: