83 votes

VIM Sélectionner toute la ligne

Comment sélectionner une seule ligne dans le VIM, lorsque votre curseur se trouve à un endroit aléatoire de cette ligne ?

Je sais qu'on peut faire (v, $) pour aller à la fin de la ligne, ou (v, ^) pour aller au début, mais quand on fait (v,$,^) ça ne sélectionne logiquement pas toute la ligne, ça sélectionne à partir du curseur, jusqu'à la fin, puis ça passe au curseur jusqu'au début... Cette approche échoue donc bien sûr.

161voto

meagar Points 85475

Le capital V sélectionne la ligne en cours en une seule frappe ; deux, si vous incluez le "shift" dans shift + v .

79voto

Jason Jun Ge Points 891

V serait une réponse directe. Cependant, je n'ai que rarement besoin de le faire car la "sélection de la ligne en cours" fait généralement partie d'une tâche plus importante. Les exemples de telles tâches comprennent la copie de la ligne et la suppression de la ligne. Il existe généralement une meilleure façon d'accomplir la tâche dans son ensemble. Voici quelques-unes des tâches auxquelles je pense :

  • copier la ligne : yy
  • supprimer la ligne : dd
  • indenter la ligne : >> o <<
  • sélectionner le paragraphe en cours : vap o vip
  • effacer de la ligne actuelle jusqu'à la fin du fichier 0dG
  • mettre en évidence la ligne en cours pour voir où se trouve mon curseur : utiliser :set cursorline dans le fichier .vimrc

Dans le cas où j'utilise V est de sélectionner plusieurs lignes qui ne sont pas un paragraphe ou un autre objet texte. Dans ce cas, une astuce peut vous être utile : une fois en mode de sélection, vous pouvez utiliser la commande o pour faire passer le curseur entre le début et la fin de la sélection.

10voto

FDinoff Points 13897

Bien qu'il s'agisse d'un plus grand nombre de frappes.

Si vous êtes déjà en mode visuel, vous pouvez utiliser o pour aller à l'autre bout de la sélection visuelle.

Vous pouvez donc taper

v0o$

Pour sélectionner toute la ligne. Regardez :h visual-change


Cependant, d'après les commentaires, il semble que vous souhaitiez simplement copier la ligne entière.

Ce qui serait tout simplement yy

5voto

samsquanch Points 501

Il suffit de changer l'ordre des opérations. Vous y êtes presque.

^,v,$

Ou comme suggéré par @Kent : parce que ^ va au premier caractère non vide, si la ligne a des espaces en début de ligne :

0,v,$

1voto

downtime Points 41

Je sais que ce sujet est très ancien, mais je viens de me poser la même question. Ce fil est apparu en premier, mais j'ai trouvé une réponse différente de celle trouvée ici. Utilisez 'V' pour sélectionner des lignes entières. C'est aussi simple que cela. Un caractère pour sélectionner toute la ligne en cours.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X