ssh do msysgit não exibe cores


6

estou a usar Consola 2 almoçar msysgit 's Bash shell no Windows. Quando eu ssh para um servidor (um servidor SLES ou RHEL) e fazer um ls ou usar vi Eu não tenho cores. No entanto, as cores funcionam corretamente se eu usar PuTTY . Eu não fiz nenhuma personalização de cores no Console 2, Bash ou PuTTY, e as cores nos servidores (que eu saiba) não foram alteradas.

Depois de ler iTerm2 perde cores "ls" se eu ssh para um servidor eu tentei ls --color=always e isso exibe algumas cores, mas não todas elas. Ele mostra as cores executável e pasta (verde e azul, respectivamente, no meu caso), mas não arquivos zip (deve ser vermelho no meu caso). Novamente, o PuTTY exibe estes corretamente.

Aliasing um monte de comandos onde eu quero cor não é uma solução viável para mim porque eu regularmente acessar dezenas de servidores diferentes e que interage com a forma como outros administradores estão usando esses servidores.

Alguma ideia?


verifique o que 'echo $ TERM' retorna quando você efetua login do Console 2 / putty. É possível que o seu bashrc ou vimrc esteja configurado para ativar apenas as cores nos terminais que definitivamente suportam. Ou seja, no Arch Linux você tem que adicionar manualmente 'screen' como um tipo de terminal para que a tela tenha cores. Além disso, para o aliasing, você pode fazê-lo em seu bashrc pessoal (~ / .bashrc) e isso afetará apenas você e não outros administradores.
Justin

Relatórios do console 2 cygwin enquanto relatórios PuTTY xterm. Infelizmente, uso uma conta de administrador compartilhada nesses servidores para não ter meu próprio .bashrc Arquivo.

Isso está chegando mais perto. eu posso fazer TERM=xterm ssh my.awesome.server -l username e eu pego minhas cores usando ls novamente. vi completamente quebra usando essa configuração embora.

Respostas:



3

O Console2 é um emulador de console "real", mas o PuTTY executa aplicativos via pipes.

Isso significa que, quando o ssh detecta "no console window" (pipes), ele passa a usar seqüências de escape ANSI para exibir cores. Mas o console padrão do Windows não suporta escapes, é por isso que quando o ssh o detecta (e o Console2) pensa que o ANSI não está disponível e muda para o uso da API do win32, cuja implementação, acredito, é muito ruim.

Eu conheço duas ferramentas trazendo ANSI para o console do Windows - ANSICON e meu próprio ConEmu , mas msys não sabe sobre eles e falha para detectar o recurso ANSI.

No entanto, tenho alguns pensamentos sobre isso - como enganar certos aplicativos que eles estão executando no pipe terminal (PTY).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.