É improvável que isso tenha algo a ver com o látex.
Não há códigos de caracteres únicos para teclas de seta; em vez disso, eles enviam sequências de controle. Por exemplo, a tecla de seta para cima normalmente envia ESC [ A . vi usa termcap ou terminfo (mais provavelmente o último nos dias de hoje) para interpretar essas seqüências, com base no tipo de terminal que você acha que possui, especificado pela variável de ambiente $TERM . Você pode ver essas seqüências, por exemplo, digitando control-V seguido de uma seta para cima em um prompt de shell ( control-V diz para interpretar o próximo caractere literalmente).
Aparentemente, vi não possui informações suficientes para saber o que ESC [ A significa.
Há também um conjunto alternativo de códigos; Por exemplo, a seta para cima pode estar enviando ESC O A . Em xterm , este modo pode ser alternado através do clique do meio do controle e habilitando ou desabilitando "Chaves do cursor de aplicativo".
Observe também que você pode usar h , j , k e l para a esquerda, para baixo, para cima e para a direita, respectivamente. Isso pode ser mais fácil de usar do que as teclas de seta quando você se acostumar com isso; você não precisa mover a mão direita para fora da linha inicial do teclado.
Qual é a saída de echo $TERM , digitada no prompt do shell? Qual emulador de terminal você está usando ( xterm , etc.)? Qual versão de vi você está usando ( vim , alguma outra coisa?) Em que sistema operacional você está? Você está usando o Cygwin?