Conceito Subjacente Atrás dos Mapeamentos de Teclado

2

Estou frustrado com os principais problemas de mapeamento.

Na minha caixa Linux, se eu digitar Início / Fim no Vim, então o cursor realmente se move para o começo / fim da linha. No meu Mac quando estou no TextEdit, se eu fizer Fn + Esquerda ou Fn + Right , isso me leva ao começo / fim da linha.

Mas se eu estiver no Vim no meu terminal Mac, as mesmas combinações de teclas não funcionarão. Por quê? Eu vejo on-line todas as configurações enigmáticas diferentes que eu tenho que colar em .vimrc para fazer este trabalho, mas não consigo encontrar nenhuma explicação para esses mapas crípticos, configurações imap.

Qual é o problema subjacente aqui e como posso corrigi-lo?

Obrigado!

    
por user855 05.11.2013 / 06:40

3 respostas

0

(isso deveria ser um comentário, mas fiquei sem espaço)

Eu acho que uma parte significante da diferença entre o modo linux de fazer as coisas, e o jeito do OS X de fazer as coisas é que sua tradicional caixa * nix, e a maioria dos teclados regulares não previsivelmente tem teclas fn, então projetar um mapa de teclas que pressupõe isso não faria sentido.

O Vim tem suas próprias atalhos de teclado unix antigas que você pode modificar, então usa o antigo e confiável modo que o Linux e a maioria dos unix clássicos usam.

A Apple controla todos os aspectos do hardware do Mac, portanto, eles podem assumir com segurança que o fn está lá. O TextEdit é apenas o OS X, e bem, a opção home como ir para o topo da linha é um os x ism . A tecla fn esquerda / direita para iniciar / terminar é provavelmente uma solução alternativa para isso. Você sempre pode alterar o ~/Library/KeyBindings/DefaultKeyBinding.dict para que o textedit e outros aplicativos com sabor de maçã funcionem consistentemente com outros aplicativos unix com flacoured.

Curiosamente, não há nada sobre isso no Artigos da interface humana do OS X , por isso é muito difícil adivinhar o que a Apple estava pensando em fazer isso.

    
por 05.11.2013 / 07:39
0

O Vim responde ao código associado a <End> . Como não há nenhuma chave <End> no teclado do seu Macbook, esse código deve ser emulado de alguma forma: via fn + right. Essa combinação funciona no Macvim, então, se você usar o Vim em um terminal, é provável que ele esteja interrompendo essa combinação antes que o Vim tenha a chance de recebê-lo.

Se você usasse um teclado real, não teria motivos para reclamar: o Vim recebe <End> e <Home> perfeitamente sem nada para fazer.

    
por 05.11.2013 / 08:12
0

Não tenho certeza se respondo:

Já existe um mapeamento chave para isso no vim:

No modo normal, pressione ^ para ir no começo e $ para ir no final (pense em regex)

Se você quiser entrar no modo de inserção no início da linha, digite I (Inserir)

Se você quiser entrar no modo de inserção no final da linha, digite A (Append)

    
por 06.11.2013 / 09:46