Como mapear o ALT-return em .vimrc?

1

Eu estou tentando mapear uma combinação de alt esquerdo e retornar chaves no meu .vimrc, mas sem sucesso.

Eu adicionei todos esses mapeamentos ao meu arquivo .vimrc, sem efeito:

map <M-esc> itest0<return><esc>
map <M-cr> itest1<return><esc>
map <M-return> itest2<return><esc>
map <M-enter> itest3<return><esc>
map <M-[> itest4<return><esc>
map ^[ itest5<return><esc>

Algumas informações:

Depois de pressionar Ctrl + v e depois Alt + retornar :

  • no meu terminal eu recebo ^[
  • no vim (e gvim) no modo de inserção eu recebo ^[
  • Depois de chamar sed -n l i get:
^[
3$

Estou usando o terminator no Arch Linux. O comportamento descrito é idêntico, não importa se eu uso o vim ou o gvim. O que devo fazer?

    
por browning0 04.12.2016 / 15:01

1 resposta

3

Devido à forma como a entrada do teclado é tratada internamente, isso infelizmente não é geralmente possível hoje, mesmo no GVIM. Algumas combinações de teclas, como Ctrl + não-alfabético, não podem ser mapeadas e Ctrl + letra vs. Ctrl + Shift + letra não pode ser distinguida. (A menos que o seu terminal envie um código termcap para ele, o que a maioria não faz.) No modo de inserção ou de linha de comando, tente digitar a combinação de teclas. Se nada acontecer / for inserido, você não poderá usar essa combinação de teclas. Isso também se aplica a <Tab> / <C-I> , <CR> / <C-M> / <Esc> / <C-[> etc. (somente a exceção é <BS> / <C-H> .) O mesmo se aplica a Alt e chaves não alfabéticas. Este é um ponto doloroso conhecido, e o assunto de várias discussões no vim_dev e no canal #vim do IRC.

Algumas pessoas (principalmente Paul LeoNerd Evans) querem consertar isso (mesmo para o console Vim em terminais que apóiam isso), e lançaram várias propostas, cp. link

Mas a partir de hoje, nenhum patch ou voluntário ainda se apresentou, embora muitos tenham expressado o desejo de ter isso em um futuro lançamento do Vim.

    
por 05.12.2016 / 16:03