Vim - sélectionner / retirer / supprimer le contenu entre crochets, y compris les crochets


31

Dans vim, est-il possible de sélectionner du contenu entre les crochets, y compris les crochets similaires à

yi{ yi(

Mais je veux inclure les crochets.

Réponses:


0

Vous pouvez déplacer le curseur sur une parenthèse, puis faire vf{ou vf(pour vous mettre en mode visuel, puis tout sélectionner jusqu'à (et y compris) la parenthèse.


5
En fait, cela finira par sélectionner uniquement l'accolade ouvrante. Si vous êtes au-dessus de l'accolade d'ouverture, f{vous vous déplacerez vers l'accolade d'ouverture la plus proche, sur laquelle vous êtes déjà. Ce que vous voulez probablement, c'est v%ce qui vous amènera à l'accolade correspondante et peut être utilisé de chaque côté.
Michael Mior

Ce n'est pas la bonne réponse. Voir la réponse de @ garyjohn ci-dessous.
Michael Sandman,

75

Oui. Utiliser aau lieu de i, comme

ya{
ya(

Voir

:help a{
:help a(

et plus généralement,

:help text-objects
:help 04.8

1
Cela devrait être la réponse acceptée!
phanhuy152

3

Fait f{v%ou f(v%fait ce que vous voulez? Il déplace votre curseur sur le suivant {ou (, vous fait passer en mode visuel, puis déplace votre curseur sur la fermeture correspondante} ou). Si vous avez déjà dépassé la portée que vous souhaitez sélectionner, vous pouvez utiliser un capital F. Fonctionne tout aussi bien pour passer à la fin} ou) d'abord aussi - f}v%.

Une fois que vous avez ce que vous voulez sélectionné, vous pouvez y, d, x, etc. il. La %commande fonctionne également sur plusieurs lignes, vous pouvez donc utiliser cette technique sur de gros blocs de code si vous le souhaitez (bien fque ce Fne soit pas le cas, vous devez donc commencer sur la première ou la dernière ligne).

EDIT: Meilleure réponse, semble être exactement ce que vous recherchez:

ya(

Remplacement de la idans votre commande d' origine avec le afait exactement la même chose, sauf qu'il comprend le « ( » caractère. Ceci est « Emmener un bloc », alors yi(est « un arrachant i bloc nner ».

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.