7 Stimmen

VIM Unix-Befehle in Farbe gedruckt

Ich benutze MacVim und würde gerne Folgendes haben ! Befehle in Farbe gedruckt. Zum Beispiel:

In der Bash gibt die folgende echo-Anweisung Hello World in grüner Farbe aus (wie erwartet):

$ echo -e "\033[32m Hello World" 
 Hello World

In VIM ist die Ausgabe jedoch nicht farbig, und die Escape-Codes werden gedruckt:

:!echo -e "\033[32m Hello World" 
 [32m Hello World

Wie kann man VIM (und MacVim Build 57 im Besonderen) dazu bringen, die Ausgabe von ! Befehle und ehren ANSI-Farb-Escapes.

4voto

sehe Punkte 346808

Das können Sie nicht. Aber Sie können den Editor anhalten und relativ schnell in eine Shell wechseln;

Oder Sie können verwenden Ansi Filter um die Escape-Sequenzen zu entfernen, damit Sie wenigstens kein Durcheinander sehen.

2voto

jm666 Punkte 58205

Diese:

:!echo $(tput setaf 1)Hello world$(tput sgr0)

wird gedruckt Hello world in Farbe.

Verwenden Sie keine Escape-Sequenzen, sondern benannte tput-Einträge. (immer, nicht nur in diesem Beispiel). read:
man teminfo; man infocmp; man tput - für weitere Informationen.

Aufgrund der Kommentare fand ich diese Frage sehr interessant.

Ich suche immer noch nach einer besseren Lösung, aber im Moment finde ich diese - http://code.google.com/p/conque/ . Erlaubt die Ausführung von farbigen Befehlen innerhalb des Puffers von MacVim.

2voto

avocade Punkte 1303

Ich weiß nicht, ob das hilft, aber wenn ich meine RSpec-Tests innerhalb von vim ausführe, erhalte ich farbige Ausgaben, wenn ich die --color Option. Ich verwende den folgenden Befehl, um die aktuelle Spezifikationsdatei inline auszuführen:

:map ,t :w\|:!rspec --color %<cr>

1voto

kikito Punkte 49986

Wenn Sie macvim im Konsolenmodus laufen lassen (vim, nicht mvim), werden alle :!-Befehle in die Shell umgeleitet und dort ausgeführt. Sie nehmen das ganze Fenster ein, anstatt 1/3 davon, und sie benutzen das Thema, das Ihre Konsole gerade hat.

Aber Sie bekommen Ansicolors.

0voto

ZyX Punkte 50799

Ihre Frage (und seine Pop-up von @avocade getan) adressiert das Problem habe ich mit einigen Druck in meinem Aurum-Plugin so habe ich geschrieben (begonnen zu schreiben, aber das wichtigste Stück der Funktionalität ist bereits hier) die ansi_esc_echo Plugin. Um es in Ihrem Projekt zu verwenden, müssen Sie es installieren, installieren frawor und tun

execute frawor#Setup('0.0', {'autoload/ansi_esc_echo': '0.0'})
call s:_r.ansi_esc.echo("\e[33mabc")

. Gegenwärtig befasst es sich nur (und zwar ausschließlich mit Sonderzeichen oder -sequenzen) mit Wagenrücklauf, Backspace (ungetestet), Tabulator, Zeilenumbruch und CSI-Farben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X