ao executar a tela no OSX, o comando + r desordena as teclas de seta no vim em todas as telas

15

Como você descontrai isso? porque você acaba pressionando o comando r o tempo todo para recarregar o seu navegador, e muitas vezes você está no terminal.

Como ainda não descobri como reativar as teclas de seta, atualmente mato todas as minhas telas e reinicio a tela, o que é uma dor.

    
por Der Hochstapler 24.11.2010 / 19:46

4 respostas

27

Como um bom defensor do Vim, sinto-me obrigado a dizer-lhe para aprender a usar o hjkl como teclas do cursor. Na metade da exploração do problema, achei que tinha se resolvido misteriosamente, até que percebi que estava testando usando hjkl em vez das teclas de seta reais.

De qualquer forma, agora para uma resposta real.

Em vez de desligar todas as telas e reiniciar, você pode aproveitar a capacidade da tela de se mover entre os terminais. Acerte CTRL+A CTRL+D para desanexar a tela do seu terminal e, em seguida, execute screen -D -R para reconectar. Isso deve fazer com que suas teclas de setas funcionem novamente.

Se você não estiver na tela, mas apenas no Vim, poderá CTRL+Z e digitar fg para o mesmo efeito.

Você também pode trabalhar em torno do problema da chave do cursor no Vim, mas a redefinição pode ter alterado outras opções do terminal, então é mais seguro fazer como descrito acima, para que você não veja outros problemas de exibição / teclado aleatórios. Se você quiser os remaphos de qualquer maneira, aqui estão eles:

map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

Detalhes imundos:

Tanto o Vim como o screen usam a biblioteca ncurses para gerenciar o terminal. Uma das coisas que as ncurses estão fazendo quando assumem o controle de um terminal compatível com VT100 é alternar as teclas de seta para "modo de aplicação", o que altera os códigos que eles emitem. A tecla de seta para cima, por exemplo, muda de Esc [ A para Esc O A . O código de controle VT100 que ele emite para fazer isso é Esc [ ? 1 h . O comando reset do terminal enviado por Command + R redefine as teclas do cursor para o padrão.

Desanexar e reconectar tela faz com que ncurses retome o controle do terminal, que reaplica todas as configurações de que ele gosta, de modo que é provavelmente a maneira mais portátil e confiável de restaurar as coisas ao normal.

Códigos de controle VT100: link

    
por 25.11.2010 / 09:54
6

Você pode corrigir isso com rapidez e facilidade com :!reset

    
por 19.08.2014 / 17:48
1

Eu mapeio Command-r para "Ignore" nos mapeamentos de teclas do iTerm.

    
por 21.01.2017 / 03:39
0

Se você estiver usando o iTerm, poderá recuperar sua sessão vim pressionando command+d e command+w

Por quê?

command+d dividirá o painel de terminal, restaurando magicamente aquele de onde você veio.

command+w agora fechará o painel dividido que você acabou de abrir.

    
por 07.05.2015 / 20:13