Vimrc, map control-; para uma ação

3

Como eu mapeio pressionando Ctrl e pressionando ; no Vim?

Não funciona no meu terminal Linux. Ctrl - l funciona bem depois de colocar <c-l> some_action no meu vimrc, mas <c-;> some_action não faz nada.

    
por Hermann Ingjaldsson 19.08.2012 / 21:02

2 respostas

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> .) Esse é um ponto problemático conhecido e o assunto de várias discussões sobre vim_dev e o canal de IRC #vim.

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 importante do Vim 8.

    
por 20.02.2013 / 14:13
2

Se você estiver trabalhando em uma GUI ou em um gerenciador de janelas de algum tipo, poderá configurá-lo para enviar um pressionamento de tecla diferente ao aplicativo terminal ou ao aplicativo Gvim ao digitar Ctrl ; . Você precisaria dizer para enviar um pressionamento de tecla que o vim entende, mas que é mais difícil para você digitar.

Por exemplo, você pode mapear Ctrl ; para Ctrl ^ (que acho difícil de digitar) e, em seguida, faça o remapeamento Ctrl ^ como quiser dentro do seu .vimrc .

Eu fiz esse tipo de coisa usando o Keyboard Maestro no Mac OS X. Claro, isso é um pouco chato de configurar e só será utilizável no (s) ambiente (s) que você configurou especialmente, mas otimizar um caso comum pode pagar a longo prazo.

    
por 27.02.2013 / 21:45