Como mapear a tecla ALT em .vimrc?

7

Para poder adicionar linhas em branco sem entrar no modo de inserção, estou tentando mapear ALT-o e ALT-O para o<ESC> e o<ESC>

Eu tentei o seguinte no meu .vimrc

map <M-o> o<ESC>
map <M-O> O<ESC>

e

map <ALT-o> o<ESC>
map <ALT-O> O<ESC>

e (como sugerido abaixo)

map <A-o> o<ESC>
map <A-O> O<ESC>

mas nenhum funciona. Apenas dá o comportamento usual, como se ALT-o não tivesse sido definido.

Esta é minha primeira vez alterando o arquivo .vimrc , e não consigo encontrar onde a documentação lhe diz como designar as várias chaves. Mas posso verificar que meu arquivo .vimrc está sendo lido, incluindo:

map <Enter> ihello<ESC>

Que mapeia com sucesso <Enter> para inserir hello e retornar ao modo de comando.

Estou usando o vim com o cygwin.

    
por Eric Wilson 10.06.2011 / 15:24

4 respostas

9

Para ver o que seu terminal está enviando quando você pressiona uma tecla, alterne para o modo de inserção, pressione Ctrl+V e, em seguida, a tecla. A maioria das chaves com a maioria dos terminais envia uma seqüência de escape em que apenas o primeiro caractere é um caractere de controle; Ctrl+V insere o próximo caractere literalmente, então você pode inserir toda a seqüência de escape dessa maneira.

Terminais diferentes enviam diferentes seqüências de escape para algumas combinações de teclas. Muitos terminais enviam o mesmo caractere ( ^O ) para Ctrl+O e Ctrl+Shift+O ; se for esse o caso, o Vim não será capaz de distinguir entre eles.

Você menciona que está usando o Cygwin; qual terminal você está usando o Vim é a informação mais pertinente. Se você estiver usando o console nativo do Windows, consiga um terminal melhor. Eu recomendo MinTTY para executar aplicativos em modo texto da Cygwin em um terminal no Windows fora do X, mas o RXVT nativo do Windows da Cygwin e < http: //code.google.com/p/puttycyg/ "> PuTTYcyg também é bom. (Também Console2 para executar aplicativos de console do Windows, mas isso é diretamente fora do tópico aqui).

    
por 10.06.2011 / 23:32
1

Se Control+V seguido por ALT-x mostrar ^[x (digite no terminal), você pode corrigi-lo com este pequeno script de vim.wikia.com :

for i in range(97,122)
  let c = nr2char(i)
  exec "map \e".c." <M-".c.">"
  exec "map! \e".c." <M-".c.">"
endfor

Adicione a .vimrc para todos os mapeamentos de teclas de alt.

    
por 05.12.2016 / 13:37
1

Isso funciona para mim no terminal 16.04 xfce do Ubuntu (e terminal de ferrugem alacritty)

Defina o gatilho do snippet ultisnip como Meta-/ (assim como o snippet do emacs)

let g:UltiSnipsExpandTrigger="^[/"

Aqui está eu digite ^[/ no vim

No modo de inserção Ctrl-V Alt-/

( Meta é a tecla Alt no teclado do meu PC)

    
por 21.02.2017 / 06:26
-1

A tecla M (eta) é o botão do windows. É apenas <A-o> .

    
por 10.06.2011 / 15:36