Beispielsweise zeigt der Befehl ls --color
farbenfrohe Ergebnisse an, wenn er in der Shell ausgeführt wird. Wenn ich jedoch :!ls --color
in vim anrufe, sind alle Farbinformationen weg.
Was kann ich tun, um die Farbe beim Aufrufen eines externen Befehls in vim beizubehalten?
EDIT: Um meine Frage zu klären : Dies ist eine Frage zu VIM selbst. Ich frage NICHT , wie die Farbe von "ls" aktiviert werden soll. Was ich wissen möchte, ist im Allgemeinen, wie die Anzeige von farbigen Ergebnissen ALLER Shell-Befehle aktiviert werden kann (solange sie farbenfrohe Ergebnisse haben).
Antworten:
CLI Vim oder GUI Vim?
Sie können die Ausgabe von
:!ls
oder:!ls --color
eines anderen externen Befehls in CLI Vim selbst nicht anzeigen, da es sich um einen einzelnen Thread handelt: Vim ist angehalten und$ ls --color
wird in Ihrer Shell ausgeführt. Daran führt kein Weg vorbei. Nun, Sie können die Ausgabe externer Befehle in den aktuellen Puffer stellen, aber das ist nicht dasselbe.In GUI Vim können Sie nur eine Pseudo-Shell erhalten, die überhaupt keine Farben anzeigen kann. Daran führt auch kein Weg vorbei.
Wenn Sie dringend eine farbige Ausgabe von externen Befehlen benötigen, müssen Sie einen externen Terminalemulator mit etwas wie starten
:!xterm &
oder ein Plugin wie Conque Shell verwenden .quelle
Sie können festlegen
:set shellcmdflag=-ic
, dass sich die Shell wie Ihre Eingabeaufforderung interaktiv verhält.quelle
Sie können eine Funktion erstellen in
.bashrc
:quelle