Vim Tutorial · 3 min read · Nov 16, 2025
So greifen Sie auf die Shell zu oder führen externe Befehle aus Vim heraus aus

Vim, wie Sie vielleicht schon wissen, ist ein funktionsreicher und leistungsstarker Editor. Hier bei HowtoForge haben wir mehrere Tutorials zu Vim geschrieben, die seine grundlegende Verwendung, Plugins sowie einige andere nützliche Funktionen abdecken. Angesichts der Vielzahl von Funktionen, die Vim bietet, finden wir immer etwas Nützliches, das wir mit unseren Lesern teilen können.
In diesem Tutorial konzentrieren wir uns darauf, wie Sie externe Befehle ausführen und auf die Befehlszeilen-Shell aus dem Editorfenster zugreifen können.
Externe Befehle in Vim ausführen
Manchmal möchten Sie möglicherweise externe Befehle aus dem Vim-Editorfenster heraus ausführen. Stellen Sie sich zum Beispiel eine Situation vor, in der Sie eine Datei in Vim geöffnet haben, einige Änderungen vorgenommen haben und dann beim Versuch, diese Änderungen zu speichern, Vim einen Fehler ausgibt, der besagt, dass Sie nicht über ausreichende Berechtigungen verfügen.
Das Verlassen der aktuellen Vim-Sitzung und das erneute Öffnen der Datei mit ausreichenden Rechten würde bedeuten, dass alle Änderungen, die Sie vorgenommen haben, verloren gehen. Das wäre, da stimmen Sie zu, in den meisten Fällen keine Option. In solchen Situationen ist die Fähigkeit, externe Befehle aus dem Editor heraus auszuführen, sehr nützlich.
Wir werden später auf den oben genannten Anwendungsfall zurückkommen (), aber lassen Sie uns zunächst verstehen, wie Sie grundlegende Befehle aus Vim heraus ausführen können.
Angenommen, während Sie eine Datei bearbeiten, möchten Sie wissen, wie viele Zeilen, Wörter und Zeichen die Datei enthält. Um dies zu tun, geben Sie im Befehlsmodus von Vim einfach einen Doppelpunkt (:) gefolgt von einem Ausrufezeichen (!) und schließlich den Befehl (‘wc’ in diesem Fall) gefolgt vom Dateinamen ein (verwenden Sie % für die aktuelle Datei).
:! wc %Hier ist ein Beispiel:
Datei mit dem oben genannten Befehl bereit zur Ausführung:

und hier ist die Ausgabe im Terminal:
Nachdem Sie die Ausgabe gesehen haben, drücken Sie die Eingabetaste, und Sie werden zurück zu Ihrer Vim-Sitzung geleitet.
Diese Funktion kann in Situationen sehr nützlich sein, in denen Sie beispielsweise einen Code oder ein Skript schreiben und schnell wissen möchten, ob der Code/das Skript Kompilierungs- oder Syntaxfehler enthält.
Weiter geht’s, falls die Anforderung darin besteht, die Ausgabe in die Datei einzufügen, verwenden Sie den Befehl ‘:read !’. Hier ist ein Beispiel:
:read ! wc %Der Befehl ‘read’ fügt die Ausgabe des externen Befehls in einer neuen Zeile unterhalb der aktuellen Zeile in der bearbeiteten Datei ein. Wenn Sie möchten, können Sie auch eine bestimmte Zeilennummer angeben - die Ausgabe wird nach dieser bestimmten Zeile hinzugefügt.
Zum Beispiel wird der folgende Befehl die Ausgabe von ‘wc’ nach der zweiten Zeile der Datei hinzufügen.
:2read ! wc %Hinweis: Verwenden Sie ‘$’, um nach der letzten Zeile einzufügen, und ‘0’, um vor der ersten Zeile einzufügen.
Nun, zurück zu dem Anwendungsfall, den wir zu Beginn besprochen haben (), hier ist der Befehl, der Ihnen hilft, die Datei zu speichern, ohne sie zuerst schließen zu müssen (was bedeutet, dass keine ungespeicherten Änderungen verloren gehen) und sie dann mit, sagen wir, sudo zu öffnen.
:w ! sudo tee %
Shell in Vim zugreifen
Neben der Ausführung einzelner Befehle können Sie sich auch in eine neu gestartete Shell aus Vim heraus begeben. Dazu müssen Sie einfach den folgenden Befehl aus dem Editor ausführen:
:shelloder
:shund geben Sie ‘exit’ ein, wenn Sie mit der Shell-Arbeit fertig sind - dies bringt Sie zurück in die Vim-Sitzung, von wo aus Sie ursprünglich gekommen sind.
Der zu beachtende Nachteil
Während die Möglichkeit, auf eine Shell zuzugreifen, definitiv ihre eigenen Anwendungen in der realen Welt hat, kann sie auch als Technik zur Privilegieneskalation verwendet werden. Wie wir in einem unserer früheren Tutorials (zu sudoedit) erklärt haben, selbst wenn Sie einem Benutzer sudo-Zugriff gewähren, um nur eine Datei über Vim zu bearbeiten, kann er mit dieser Technik eine neue Shell aus dem Editor heraus starten und dann alles als ‘root’ oder Superuser tun.
Die Fähigkeit, externe Befehle aus Vim heraus auszuführen, ist eine wichtige Funktion, die in vielen Situationen nützlich sein kann (einige davon haben wir in diesem Tutorial erwähnt). Die Lernkurve für diese Funktion ist nicht steil, sodass sowohl Anfänger als auch erfahrene Benutzer davon profitieren können.
Haben Sie diese Funktion schon eine Weile genutzt? Haben Sie etwas zu teilen? Bitte hinterlassen Sie Ihre Gedanken in den Kommentaren unten. Vielleicht sind Sie auch an dem Linux tee-Befehl interessiert.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.