Como muitos de vocês provavelmente sabem, você pode usar %
a opção de procurar na linha para encontrar a próxima chave / suporte / parêntese emparelhada e passar para o parceiro correspondente:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Espero que exista uma chave semelhante que pesquise para trás na linha, por exemplo:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
A maioria dos comandos do vim tem um retorno e um retorno, então parece que deveria. Ele não tem um parceiro? Se assim for, é que, porque uma vez que está em um personagem emparelhado agiriam da mesma?
vim
keyboard-shortcuts
Kevin
fonte
fonte
%
não apenas procura o colchete emparelhado na mesma linha, mas também mais abaixo no arquivo. Eu gosto especialmente de loops, etc, em qualquer linguagem de programa de sua escolha.g%
comando que parece semelhante ao que você está procurando.Respostas:
Se você realmente deseja procurar por caracteres coincidentes comuns, use um destes
vim
comandos específicos:[(
... (vá para o(
caractere sem correspondência anterior )[{
... (vá para o{
caractere sem correspondência anterior )Esses dois comandos têm parceiros de encaminhamento correspondentes:
])
... (passa para o próximo)
caractere sem correspondência )]}
... (passa para o próximo}
caractere sem correspondência )Existem outros comandos semelhantes para
#ifdef
e para comentários em C.Você pode encontrar mais quando em
vim
utilizando o comando:help %
.fonte
%
, os dois lados se encontrarão: encontrar o parceiro correspondente. Além disso, se estiver dentro de um bloco, os comandos acima encontrarão a correspondência apropriada.% encontram o colchete correspondente. Portanto, se você estiver no (ou {ele pesquisará adiante.
Se você estiver em um} ou), ele pesquisará para trás.
% não é direcional, apenas encontre o colchete correspondente.
fonte
Eu apenas tentei
:map ^] ^%%
(com^]
= Ctrl+ v Ctrl+ 5aqui, como uma analogia com%
= Shift+ 5).Ele funciona para o caso específico fornecido, mas, como não pesquisa para trás a partir do cursor, sempre escolhe o primeiro parêntese aberto na linha e deixa o cursor no início da linha, se não encontrar nenhuma correspondência. .
Esta é uma solução melhor; é feio e provavelmente há muito espaço para simplificar, mas acho que a semântica está exatamente correta (não move o cursor se não houver parênteses abertos e passa para o primeiro parênteses aberto antes da coluna atual).
para
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnfonte
[(
funcionaria tão bem e não requer amap
.