msysgits ssh zeigt keine Farben an

1242
Community

Ich benutze Console 2, um die Bash-Shell von msysgit in Windows zu starten . Wenn ich sshauf einen Server (entweder einen SLES- oder RHLE-Server) gehe und ein lsoder benutze vi, bekomme ich keine Farben. Die Farben funktionieren jedoch richtig, wenn ich PuTTY verwende . Ich habe in Console 2, Bash oder PuTTY keine Farbanpassungen vorgenommen, und die Farben auf den Servern (meines Wissens) wurden überhaupt nicht geändert.

Nach dem Lesen verliert iTerm2 "ls" -Farben, wenn ich ssh an einen Server ausprobierte ls --color=always, der versucht wurde, und zwar einige Farben, aber nicht alle. Es zeigt ausführbare Dateien und Ordnerfarben (in meinem Fall grün bzw. blau), jedoch keine ZIP-Dateien (in meinem Fall sollten sie rot sein). Wieder zeigt PuTTY diese korrekt an.

Das Aliasing einer Reihe von Befehlen, bei denen ich Farbe will, ist für mich keine praktikable Lösung, da ich regelmäßig auf Dutzende verschiedener Server zugreife und auf die Art und Weise, wie andere Administratoren diese Server verwenden, interagiert.

Irgendwelche Ideen?

6
Prüfen Sie, was "echo $ TERM" zurückgibt, wenn Sie sich von beiden Konsolen 2 / Putty aus anmelden. Es ist möglich, dass bashrc oder vimrc so eingestellt sind, dass nur Farben an Terminals aktiviert werden, die dies definitiv unterstützen. Dh in Arch Linux müssen Sie manuell 'screen' als Terminaltyp hinzufügen, damit der Bildschirm Farben hat. Zum Aliasing können Sie dies auch in Ihrer persönlichen Bashrc (~ / .bashrc) tun, und dies wirkt sich nur auf Sie und nicht auf andere Admins aus. Justin vor 11 Jahren 0
Konsole 2 meldet "cygwin", während PuTTY "xterm" meldet. Leider verwende ich auf diesen Servern ein freigegebenes Administratorkonto, so dass ich keine eigene `.bashrc'-Datei habe. vor 11 Jahren 0
Das ist ein Schritt näher. Ich kann `TERM = xterm ssh my.awesome.server -l username` ausführen und bekomme meine Farben wieder mit` ls`. `vi` bricht mit dieser Einstellung jedoch völlig ab. vor 11 Jahren 0

2 Antworten auf die Frage

3
Maximus

Console2 ist ein "echter" Konsolenemulator, aber PuTTY führt Anwendungen über Pipes aus.

Das heißt, wenn ssh "Kein Konsolenfenster" (Pipes) erkennt, wird zur Anzeige von Farben auf ANSI-Escape-Sequenzen umgeschaltet. Die Standard-Windows-Konsole unterstützt jedoch keine Escape-Anweisungen. Wenn ssh dies erkennt (und Console2 entsprechend), ist ANSI nicht verfügbar und wechselt zur Verwendung der Win32-API.

Ich kenne zwei Tools, die ANSI auf die Windows-Konsole bringen - ANSICON und mein eigenes ConEmu, aber msys kennt sie nicht und schlägt fehl, um die ANSI-Fähigkeit zu erkennen.

Ich habe jedoch darüber nachgedacht, wie man bestimmte Anwendungen täuscht, die in Pipe Terminal (PTY) laufen.

3
Jeremy Fujimoto-Johnson

I believe you are looking for the LS_COLORS environment variable. This article has a nice write-up: http://www.bigsoft.co.uk/blog/index.php/2008/04/11/configuring-ls_colors

Dies bestimmt definitiv die Farben in 'ls'. Seltsamerweise verursachte etwas, das ich geändert hatte, dass 'vi' anfing, Farben anzuzeigen (oder ich halluzinierte, als ich dachte, dass es nicht funktionierte). vor 11 Jahren 0