[ Atualização: A partir do Mac OS X Mountain Lion 10.8, o Terminal suporta a seqüência de escape do Backtab, eliminando esse problema.]
A versão (s?) do nano nesses servidores às vezes envia um backtab (ESC [Z] ao mover o cursor deixado por um caractere, mas o Terminal não suporta esta sequência, então o nano acha que o cursor se moveu quando não tem e sua idéia sobre a posição atual do cursor está fora de sincronia com o terminal.
Por razões que não consigo entender, o nano envia um Backtab quando se move para a esquerda e o cursor é um caractere à direita de uma parada de tabulação. Da mesma forma, o IIRC envia um Tab (Controle-I) quando se move para a direita e o cursor é um caractere à esquerda de uma parada de tabulação. Não sei por que isso acontece ao redor de paradas de tabulação, em vez de sempre se mover para a esquerda / direita usando as mesmas seqüências de caracteres. A versão do nano enviada com o Mac OS X Lion 10.7 não faz isso.
O nano só faz isto quando o terminfo diz que a capacidade cbt
é suportada. O terminfo padrão para o Terminal é xterm-256color
, que declara esse recurso e o mapeia para a seqüência do Backtab. Uma solução alternativa é definir a variável de ambiente TERM
como algo que não declara esse recurso. Você pode fazer isso na máquina local antes de chamar ssh
ou no arquivo de inicialização do shell no host remoto. Configurá-lo para xterm-color
será fácil, embora não seja recomendado, pois desativa outros comportamentos importantes (por exemplo, 256 cores, BCE, preservação alternativa do conteúdo da tela). (Uma abordagem mais pesada é personalizar o arquivo terminfo xterm-256color
(ou xterm
) no host remoto para remover cbt
.)
Recomenda-se personalizar o host remoto (de uma forma ou de outra) para que as personalizações não se apliquem localmente ou a outros hosts remotos, mas a solução mais simples é alterar a configuração de preferência do Terminal para usar xterm-color
em vez de xterm-256color
:
Terminal > Preferences > Settings > [profile] > Advanced > Declare terminal as:
Eu recomendo duplicar um perfil de configurações existente, personalizá-lo e usá-lo somente quando você estiver se conectando a esses hosts remotos.