Vim et la sélection d'objet

Anne vim

Alors là, on en apprend tous les jours ! Je découvre seulement, grâce à cet article les préfixes a et i pour la sélection d’objet…

Commande

Prenons par exemple une action quelconque comme v pour la sélection visuelle, et un objet comme w pour un mot (au passage, je découvre aussi W ou la ponctuation fait partie du mot : pratique pour les noms de fichiers avec un chemin par exemple).

On a donc :

  • vw qui sélectionne du point courant jusqu’au début du mot suivant ;
  • vaw sélectionne depuis le début du mot jusqu’au début du mot suivant ;
  • viw sélectionne depuis le début du mot jusqu'à la fin du mot.

En bref, i (comme inside reste à l’intérieur de l’objet) alors que a inclus les balises.

C’est plus clair avec vi) qui sélectionne ce qui est à l’intérieur des parenthèses, et va) qui sélectionne aussi les parenthèses.

A combiner avec :

  • } pour les {accolades}
  • ] pour les [crochets]
  • > pour les
  • pour les ‘guillemets simples’
  • " pour les “guillemets (doubles)”
  • ` pour les `backtick`
  • et même t pour les balises xml !
  • quand on fait du texte, on a aussi s pour les phrases et p pour les paragraphes.

Trop bien :-)

Applications

  • pour mettre une variable bash entre guillemets pour faire taire l’erreur SC2086 de ShellCheck, c-à-d par exemple changer $ma_var en "$ma_var" : ciW"<C-r><C-o>""<esc>
    • ciW change le mot complet, y compris le $ donc ;
    • la différence entre <C-r>{reg} et <C-r><C-o>{reg} pour coller en mode insertion, c’est que le premier insert littéralement ce qu’il y a dans le registre, alors que le second dit qu’il faut insérer le contenu du registre, et c’est ce qui permet la répétition par la suite ;
    • on rappelle que " est le registre par défaut.

Voir aussi :