Como obter o nome da chave a ser codificado para o keymap no vimrc?

10

No Emacs, eu posso pressionar Ctrl-h, kpara descrever uma chave. Posso obter o nome da chave, mesmo que seja indefinido, por exemplo,

C-x <C-M-end> is undefined

Assim, conheci o nome da chave C-x <C-M-end>.

Mas como você pode obter o nome da chave do Vim?

Desejo configurar um mapa de teclas para Ctrl-Shift-Ve Shift-Insert, mas qual código devo usar?

É possível obter o nome da chave em tempo real?

Xiè Jìléi
fonte

Respostas:

2

O mais próximo que posso encontrar de describe-key( Ctrl+ H, K) é o :mapcomando. Ele listará todos os mapeamentos.

Você também pode executar :map <key name>, mas precisa especificar <key>usando a sintaxe especial listada na
notação de chave .

Ou você pode tentar :mapCtrl+ V<key>, o que deve permitir que você pressione a tecla em vez de precisar usar a sintaxe especial.

Então, para vincular Ctrl+ Shift+ V, tente o seguinte:

:map <C-S-v> whatever

ou

:mapCtrl+ V Ctrl+ Shift+V whatever

Mas certifique-se de que o seu programa de terminal ainda não use isso para algo especial como colar, caso contrário o Vim nunca verá a tecla pressionada.

Veja também map-alt-keys , o que ajuda a explicar se sua Altchave deve ser escrita como <M-x>ou <A-x>.

Mikel
fonte
É Ctrl-h, k, não Ctrl-X, k, o que significa matar buffer.
Xiè Jìléi
Desculpe, consertou isso.
Mikel
Não tenho certeza se Mou Aserá mapeado para Alt. Mas <M-h>, <M-l>simplesmente não funciona. Não sei se o nome da chave é inválido ou se os eventos da chave não foram enviados ao Vim. Sem registro, sem pista.
Xiè Jìléi
Sim, Alté difícil, porque a maioria dos terminais de enviar ESC, em seguida, xquando Alt+xé pressionado, e como Vim sei que você não pressione ESCentão x. Basicamente, Altsó funciona em Gvim.
Mikel
5

Para descobrir o que uma tecla ou combinação de teclas gera no Vim, normalmente eu abro um buffer em branco com " :enew", insiro o modo de inserção, pressione e control-v, em seguida, a combinação de teclas ou teclas que quero identificar. Esse truque control-v também pode funcionar na linha de comando:, portanto, definir mapeamentos para teste é bastante fácil. Por exemplo, " :map " control-ve a combinação de teclas " :echo 'it works'".

Heptite
fonte
0

Basta digitar Ctrl+ Von-the-fly e as teclas que deseja pressionar. Se você não encontrou o resultado esperado (como, por exemplo <c-space>, <c-cr>, <M-i>, ...) significa apenas que você está usando vim e não gvim. A maneira como o vim entende as chaves digitadas está ligada à configuração do (s) seu (s) terminal (s). O gvim usa suas próprias definições; portanto, não há nada para configurar.

Luc Hermitte
fonte