Öffnen Sie die Ausgabe eines Shell-Befehls in einem geteilten Bereich

Öffnen Sie die Ausgabe eines Shell-Befehls in einem geteilten Bereich

Betrachten Sie jede interpretierte Programmiersprache.

Ich kann das aktuell geöffnete Skript mit ausführen ! interpreter %und nach Abschluss der Ausführung mit der Eingabetaste zu vim zurückkehren.

Ist es irgendwie möglich, das aktuelle Fenster nicht durch die Ausgabe des ausgeführten Shell-Befehls zu ersetzen, sondern die Ausgabe stattdessen in einem neuen geteilten Fenster zu öffnen? Ich möchte während der Ausführung meines Skripts weiterhin meinen Quellcode sehen.

Ich habe es versucht :split ! interpreter %, aber es hat nicht funktioniert.

Gibt es eine Möglichkeit? Ich verwende vim 7.3.

Antwort1

Mit :!wird der externe Befehl in einer Shell ausgeführt und die flüchtige Ausgabe wird nicht in Vim erfasst. Sie sehen nur, was auf dem Terminal gedruckt wird. Nach Abschluss des externen Befehls wird die Steuerung an Vim zurückgegeben.

Um die Ausgabe zu behalten, müssen Sie sie in einen Vim einlesenPuffer. Dafür gibt es den :read!Befehl. Zum Öffnen eines neuenkratzenPuffer, kombinieren Sie dies mit :new:

:new | 0read ! <command>

Wenn Sie dem externen Kommando den Dateinamen () des aktuellen Puffers übergeben möchten %, müssen Sie verwenden :execute, damit dieser bereits im aktuellen Puffer ausgewertet wird:

:execute 'new | 0read ! interpreter' expand('%')

Oder man nutzt die Tatsache, dass mit einem neuen Puffer der vorherige zumwechselneins, und verwenden Sie #stattdessen %:

:new | 0read ! interpreter #

Entfernen Sie den Arbeitspuffer mit :bdelete!.

Wenn Sie die Ausgabe während der Ausführung asynchron sehen möchten, benötigen Sie einen externen Multiplexer oder ein Plug-In, wie in der Antwort von @chaos erwähnt.

Antwort2

Soweit ich weiß, ist das in nicht möglich vim. Verwenden Sie screendazu einen Terminal-Multiplexer wie . Starten Sie den Multiplexer, bevor Sie einen Vim öffnen:

screen

Drücken Sie dann ctrl- a Sfür einen horizontalen und ctrl- a |für einen vertikal geteilten Bildschirm.

Öffnen Sie nun eine Datei in vimeinem der geteilten Bildschirme. Und springen Sie mit ctrl- zum anderen Bildschirm a tab. Beachten Sie, dass Sie im zweiten Bildschirm zuerst einen neuen Bildschirm öffnen müssen ( ctrl- a c), bevor Sie ihn verwenden können.

Auf dem Bildschirm mit vim können Sie die Datei bearbeiten und auf dem anderen Bildschirm können Sie sie ausführen und die Nachrichten und den Code dauerhaft sehen.

Hier einKurzübersichtfür screen.

verwandte Informationen