As cores são diferentes quando SSH em uma máquina Linux do iTerm2. Como posso padronizá-los?

2

Originalmente postado isso no apple stackexchange , mas eu suspeito que a solução pode ser Linux-ey, por exemplo. adicionando algo ao meu .bashrc .

Atualmente, quando eu SSH em uma máquina Linux, as cores de saída e a coloração de sintaxe ls no VIM são diferentes das cores na minha máquina local. As cores mostradas são não definidas no meu Perfil ... Cores ... Cores ANSI e incluem uma cor marrom escura feia para "amarelo". Como posso forçar o texto de uma sessão remota para coincidir com minhas cores ANSI, para que a coloração seja sempre consistente?

Aqui está um exemplo do que estou falando: à esquerda é sessão VIM no meu computador local, à direita é sessão VIM dentro de uma sessão SSH. Observe o marrom medonho.

Eaquiestáumexemplodoproblemals-ascoressãodiferentes.

    
por Luke Davis 03.01.2018 / 00:07

2 respostas

6

O terminal vim usa cores que o seu terminal disponibiliza (as cores ANSI que você escolhe, presumivelmente - a menos que seu terminal ofereça 256 cores ou cores ajustáveis), mas quais cores são controladas pelo esquema de cores vim e se acredita que o fundo é claro ou escuro.

Você pode verificar se o plano de fundo está definido como claro ou escuro em :set background? . Você pode alterá-lo da maneira comum (por exemplo, :set background=dark ).

Você pode verificar o esquema de cores atual executando :colorscheme e configurando-o executando :colorscheme «NAME» . Pelo menos aqui, o vim irá completar o nome completo, permitindo que você veja todos os disponíveis.

Depois de encontrar as configurações desejadas, você poderá adicioná-las ao seu ~/.vimrc .

EDITAR: ls colors (com GNU coreutils) são definidos pela variável de ambiente LS_COLORS ; veja info dircolors ou (se isso não funcionar) man dircolors . Embora isso possa ser um pouco mais difícil, já que o Mac OS X ls e o GNU coreutils ls (como normalmente são usados no Linux) são implementações totalmente separadas.

    
por 03.01.2018 / 00:16
0

Eu encontrei a resposta para o problema "ls cores são diferentes". Você só precisa certificar-se de que ls coloração esteja ativada em ambas as máquinas, então use esta página para tornar as cores codificadas no local (Mac) LSCOLORS variável idêntica às cores codificadas na variável remota (Linux) LS_COLORS .

Para o Linux ls colorir correspondendo aos padrões do macOS: coloque isso no seu .bashrc no seu Mac:

alias ls="ls -G"
export LSCOLORS="exfxcxdxbxegedabagacad"

E coloque isso no seu .bashrc na máquina Linux:

alias ls="ls --color=always"
export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"
    
por 03.01.2018 / 07:04