As teclas numéricas do teclado no vi inserem letras em vez de números

8

Eu sou novo no vi. Na verdade, estou usando apenas para modificar pequenos arquivos de texto. Acho que tenho um problema sério e incomum no teclado numérico, como a seguir: escrevo vi INe pressiono enter. Isso me faz acessar o arquivo nomeado IN. Então eu uso as teclas de seta (ou hjkl) para mover o cursor pelo arquivo. Então eu pressiono ipara ativar insert modee escrever. Aí vem o problema: o teclado numérico não funciona corretamente, pois recebo pqrstuvwxylquando pressiono 0123456789+( ,.-*/=ainda funciona).

Enrico Maria De Angelis
fonte
11
Por que minha pergunta foi migrada para aqui? O problema não era sobre o Mac, mas sobre o Vi. De fato, como eu disse, o teclado numérico não estava funcionando apenas no Vi . Pelo contrário, sempre funcionou no terminal ou em outras aplicações.
Enrico Maria De Angelis

Respostas:

8

Tanto quanto eu entendo, existem dois modos possíveis para teclados numéricos dos terminais VT100: o modo numérico normal do teclado numérico e o modo do teclado numérico do aplicativo . Este último faz com que as teclas do teclado não enviem números, mas sequências de escape. Por exemplo, a tecla '1' envia <ESC>[Oq, a tecla '2' envia <ESC>[Or, das quais apenas as letras q e r são visíveis na tela. Essas são seqüências de controle que o programa (host) pode interpretar como comandos para alguns recursos. Portanto, nesse modo, as teclas do teclado são praticamente usadas como teclas de função adicionais.

De acordo com o padrão do terminal VT100, um programa (host) pode 'pedir' ao terminal para mudar o teclado para o modo de aplicação. (Ele pode fazer isso enviando uma sequência de controle específica ao terminal.) Vi e Vim são conhecidos por fazer isso. O comutador de modo não é universal, mas em um programa para base do programa: ele está ativo apenas no programa que o solicitou. Em outros programas, incluindo o shell, o teclado permanece no modo Numérico. A configuração padrão no Terminal.app do OS X é permitir que os programas alternem para o modo Aplicativo, que é o que você desativou agora desmarcando a opção "Permitir modo de teclado do aplicativo VT100". (BTW: No OS X 10.7, esta opção está rotulada como "Strict VT100 keyboard behavior".)

Veja também:

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/en/usage/tips/appkeypad.html

Dictionarics Anonymous
fonte
Talvez eu não tenha entendido o que você escreveu. Quando estou no terminal, o teclado funciona bem (insere números). O comportamento "estranho" estava acontecendo apenas no modo de inserção do Vi.
Enrico Maria De Angelis
11
O comutador de modo está ativo apenas no programa que o solicitou (neste caso: vi). Portanto, o teclado funciona normalmente em outros programas, incluindo o shell. Adicionei esse esclarecimento à resposta.
Dictionarics Anonymous
9

Resolvi o problema sozinho, mas gostaria de saber por que minha solução funciona. Desmarquei a opção que a seta vermelha indica na figura a seguir. entrar É italiano, mas a versão em inglês da mesma janela está aqui

Mas não me lembro de ativar isso, mas aí está.

Enrico Maria De Angelis
fonte
A edição é enganosa. É falso que " não me lembro de ativar isso "; pelo contrário, tenho certeza de que nunca o habilitei nesta janela !
Enrico Maria De Angelis
Além disso, houve uma parte em que solicitei que alguém me dissesse por que essa opção teve essa consequência, se houver outras e se é possível que eu a habilitei pelo efeito colateral de um erro de digitação.
Enrico Maria De Angelis
AFAIK, a opção está ativada por padrão (pelo menos também está ativada no meu Mac e tenho certeza de que não a habilitei deliberadamente). Quanto ao seu segundo comentário: veja a observação no histórico de edições referente às perguntas de acompanhamento ocultas nas respostas.
nohillside
11
A referência é que eu sempre usei o teclado numérico para inserir números no Vi. De qualquer forma, talvez a opção possa ter sido ativada pela atualização de Yosemite para El Capitan (ainda tenho certeza de que usei o teclado numérico para inserir os números após a atualização).
Enrico Maria De Angelis
11
Costumava estar ativado por padrão. A partir do OS X 10.11 El Capitan, está desativado por padrão. O Vim está ativando o DECKPAM (Application Keypad Mode) sem fornecer nenhum mapeamento padrão. Não consegui descobrir por que o Vim faz isso. Eu acho que ele deve fornecer mapeamentos padrão ou não ativar o DECKPAM por padrão.
Chris Página