O problema provável é que, ao usar a repetição de teclas para mover-se continuamente em um terminal, quando você chegar ao fim, sua chave terá enviado mais caracteres do que o necessário para chegar ao fim. O editor (ou outro aplicativo) ainda precisa ler e reagir a esses caracteres extras. Enquanto isso, você pode perceber que nada parece estar acontecendo.
As teclas do cursor enviam a movimentação de um caractere, geralmente 3
, para que a repetição de teclas possa preencher o buffer de entrada do programa mais rapidamente do que você poderia esperar.
Em vez de usar repetição de tecla para se movimentar, o vi foi projetado para terminais lentos, fornecendo movimento de um único caractere para pontos úteis na tela, por exemplo, ^
para passar para o início de uma linha, H
para ir para o topo da tela, G
para ir até o final do arquivo.