Alors, si j'ai du texte comme suit:
if answer == 42 { #1
if bugs == 'bunny' { #2
if injury == 'but a scratch' { #3
// do the thing #4
} #5
} #6
} #7
et que j'ai mon curseur sur // do the thing
et que je fais la commande va{
, je sélectionnerai alors les {}
des lignes 3 à 5, et si je refais a{
, je sélectionnerai les {}
des lignes 2 à 6.
Mais oh non, je réalise maintenant que je voulais en fait seulement sélectionner les {}
des lignes 3 à 5. À mon horreur, la méthode habituelle de vim de capitalisation => opposé
ne fonctionne pas et A{
ajoute simplement un {
à la fin de la ligne.
Puis-je passer d'une grande sélection à une plus petite sans annuler la sélection, déplacer mon curseur et tout refaire à partir de zéro? Dans cet exemple, il serait également assez simple d'utiliser certains des hjklwbeo
pour modifier manuellement la sélection, mais en pratique, les blocs de code sont longs et complexes.
Je suis conscient que cela pourrait être ambigu s'il y a plusieurs blocs frères dans un bloc parent, mais je serais satisfait de simplement sélectionner le premier car cela m'arrive rarement.
Merci!
Édition: Un plugin qui fait cela serait une bonne alternative. S'il semble qu'aucun n'existe, je vais créer un MVP rapide et poster un lien ici pour récolter des commentaires.