Vim - selecione / arranque / exclua o conteúdo entre colchetes, incluindo colchetes


31

No vim, é possível selecionar o conteúdo entre os colchetes, inclusive os semelhantes a

yi{ yi(

Mas eu quero incluir os colchetes.

Respostas:


0

Você pode mover o cursor sobre um suporte e fazer vf{ou vf(para levá-lo ao modo visual e selecionar tudo até (e inclusive) o suporte.


5
Na verdade, isso acabará selecionando apenas a chave de abertura. Se você estiver no topo da chave de abertura, f{você será movido para a chave de abertura mais próxima, na qual você já está. O que você provavelmente quer é v%que o mova para a chave correspondente e possa ser usado em ambos os lados.
Michael Mior 23/11

Esta não é a resposta correta. Veja a resposta de @ garyjohn abaixo.
Michael Sandman

75

Sim. Use em avez de i, como

ya{
ya(

Vejo

:help a{
:help a(

e mais geralmente,

:help text-objects
:help 04.8

1
Esta deve ser a resposta aceita!
Phanhuy152

3

Faz f{v%ou f(v%faz o que você quer? Move o cursor para o próximo {ou (, entra no modo visual e depois move o cursor para o fechamento correspondente} ou). Se você já tiver passado do escopo que deseja selecionar, poderá usar um capital F. Funciona tão bem para pular para o fechamento} ou) primeiro também - f}v%.

Depois de ter o que você quer selecionar, você pode y, d, x, etc. ele. O %comando funciona multi-linha, também, então você pode usar esta técnica em grandes blocos de código, se desejar (embora fe Fnão fizer isso, então você tem que começar na primeira ou última linha).

EDIT: melhor resposta, parece ser exatamente o que você está procurando:

ya(

Substituir o iem seu comando original com afaz exatamente a mesma coisa, exceto que ele inclui o '(' personagem. Isto é "puxando um bloco", enquanto yi(está "puxando um i bloco NNER".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.