Ao usar o gVim no Windows 7, não posso usar ^] ( CTRL+ ]) para pular para as tags, conforme descrito na documentação do Vim :
<C-LeftMouse> *<C-LeftMouse>* *CTRL-]*
CTRL-] Jump to the definition of the keyword under the
cursor. Same as ":tag {ident}", where {ident} is the
keyword under or after cursor.
When there are several matching tags for {ident}, jump
to the [count] one. When no [count] is given the
first one is jumped to. See |tag-matchlist| for
jumping to other matching tags.
{Vi: identifier after the cursor}
Isso costumava me incomodar muito ao aprender o Vim . No final, consegui resolvê-lo usando esse mapeamento hacky
nnoremap <leader>t :tag <c-r><c-w><cr>
o que me permitiu pular para tags usando \t
(usei a configuração padrão de \
as <leader>
).
Isso não é mais um problema para mim, agora eu só uso o gnu / linux para programação e já li praticamente toda a ajuda que há para ler. Mas, considerando que isso contribuiu para tornar minha experiência de aprendizado do Vim muito pior, peço aqui que resolva isso para pessoas que estão na mesma situação em que eu estava.
Por que CTRL+ não ]funciona para mim no Windows 7 e como pode ser corrigido?
Editar : o título foi editado com as informações de que esse problema é causado pelo layout do teclado que usei.
fonte
Ctrl-]
uma palavra?^]
ser inserido usando oCtrl-AltGr-9
que não funciona no Vim. Eu respondi minha própria pergunta com esta informação.<C-]>
num teclado AZERTY Mac é obtido por prensagem<C-$>
,$
sendo no mesmo local físico como]
em teclados QWERTY.Ctrl-]
foi pressionado. Ou foiCtrl-[
?)Respostas:
Diga olá à fragmentação do conhecimento: https://stackoverflow.com/q/6932702/520162 Esta pergunta já foi feita e respondida no StackOverflow.
A tecla é pressionar CTRLe a tecla que está localizada onde fica ]o teclado dos EUA . Eu tive o problema com um teclado alemão QUERTZ e tenho que pressionar CTRL-+
Compare: teclado dos EUA:
Teclado alemão:
Outra maneira óbvia seria simplesmente remapear a funcionalidade para um pressionamento de tecla diferente. Desde que você quer g o t o da marca sob o cursor, você poderia usar oopara isso:
fonte
Acabei de descobrir por que tinha esse problema.
A causa do problema
O problema é que eu usei um layout de teclado diferente do inglês no meu computador com Windows 7.
O caractere de barra invertida é inserido usando Alt Gr+ 9no layout do teclado que não está em inglês. Isso leva a que ^] seja inserido usando Ctrl+ Alt Gr+ 9. Isso simplesmente não funciona no Vim .
Eu não sei por que isso é:
O problema pode estar no hardware. Talvez o problema seja causado por fantasmas limitados no teclado (mas eu tenho o mesmo problema com um teclado que deve ser capaz de registrar 6 teclas ao mesmo tempo).
O problema pode estar no software. Talvez o Vim não tenha sido programado com isso em mente.
Eu gostaria que alguém que usasse um teclado que não fosse o inglês pudesse comentar se ^] funciona como deveria em sua máquina.
A solução
O problema é resolvido simplesmente mudando para um layout de teclado em inglês. Infelizmente não encontrei outra solução.
Então você tem que usar um layout em inglês. A interface do usuário do Vim também foi projetada com um layout de teclado em inglês. Usar um layout de teclado em inglês também é vantajoso na programação, pois caracteres como
[
,{
e;
que são freqüentemente usados na programação, se tornam mais fáceis de alcançar (sem Alt Gralongamento). Assim, a mudança pode até tornar sua vida mais confortável!O problema será digitar caracteres no seu idioma principal. Então você deve recorrer ao uso de dígrafos (consulte
:help digraphs
).Outra maneira de resolver esse problema seria usar esse mapeamento hacky mencionado na pergunta:
O que permite ao usuário pular para uma tag com
\t
(se<leader>
estiver definido\
como está por padrão).fonte