O terminal mostra caracteres ilegíveis com as mesmas configurações de outro terminal, mostrando os caracteres corretos

3

Eu tenho a configuração do vim com o NerdTree em uma máquina remota. Eu tenho duas máquinas locais. Quando eu ssh para máquina remota de uma das máquinas locais (digamos A), ele exibe todos os símbolos no NerdTree corretamente. No entanto, quando eu ssh da outra máquina local (digamos B) para a máquina remota, esses símbolos aparecem como alguns caracteres ilegíveis. Eu tentei fazer alguma pesquisa sobre isso e tentei vários locais e codificação de coisas que eu poderia encontrar. A seguir estão as configurações das duas máquinas locais e da máquina remota.

Máquina local A:

$ stty
speed 38400 baud; line = 0;
eol = M-^?; eol2 = M-^?; swtch = M-^?;
ixany iutf8

$ echo $LANG
en_US.UTF-8

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Máquina local B:

$ stty
speed 38400 baud; line = 0;
eol = M-^?; eol2 = M-^?; swtch = M-^?;
ixany iutf8

$ echo $LANG
en_US.UTF-8

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

As configurações em máquinas locais parecem ser as mesmas. Ambos executam o sistema operacional do estilo CentOS. Ambos os terminais são terminais Gnome configurados para usar a codificação de caracteres UTF-8. A única diferença que consigo ver é que a máquina A usa a versão 2.16.0 com a fonte Courier e a máquina B usa a versão 2.31.3 com a fonte monospace. Então, a máquina B realmente usa uma versão mais nova.

Máquina remota:

λ echo $LANG
en_US.UTF-8

λ stty
speed 38400 baud; line = 0;
eol = M-^?; eol2 = M-^?;
-brkint ixany

λ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

O símbolo λ que é meu $PS1 na máquina remota é exibido corretamente em ambos os terminais.

Como eu procedo daqui? As fontes instaladas em máquinas locais são importantes? Obrigado

    
por aoak 11.03.2017 / 00:40

1 resposta

2

Eu percebi isso. Isso parece um problema de fonte. Assim que instalei as fontes da máquina A para a máquina B, ela começou a funcionar bem.

Para instalar fontes, copiei tudo de /usr/share/fonts da máquina A para a máquina B e executei fc-cache /usr/share/fonts conforme descrito aqui

    
por 11.03.2017 / 01:33