web-dev-qa-db-fra.com

Vim: moyen plus rapide de sélectionner des blocs de texte en mode visuel

J'utilise vim depuis un certain temps et je suis conscient que la sélection de blocs de texte en mode visuel est aussi simple que SHIFT+V et en déplaçant la flèche vers le haut ou le bas ligne par ligne jusqu'à atteindre la fin du bloc de texte que je veux sélectionner.

Ma question est la suivante: existe-t-il un moyen plus rapide en mode visuel de sélectionner un bloc de texte, par exemple en SHIFT+V suivi de la spécification du numéro de ligne dans lequel je veux arrêter la sélection? (via :35 par exemple, où 35 est le numéro de la ligne que je souhaite sélectionner - cela ne fonctionne évidemment pas, ma question est donc de savoir comment faire si quelque chose de similaire peut être fait ...)

175
Calvin Cheng

Outre ce que d'autres ont dit, vous pouvez également élargir votre sélection à l'aide de recherches de modèles.

Par exemple, v/foo sélectionnera de votre position actuelle à la prochaine instance de "foo". Si vous voulez réellement développer l’instance suivante de "foo", à la ligne 35, par exemple, appuyez simplement sur n pour élargir la sélection à l’instance suivante, etc.

mise à jour

Je ne le fais pas souvent, mais je sais que certaines personnes utilisent beaucoup les marques pour faire des sélections visuelles. Par exemple, si je suis sur la ligne 5 et que je souhaite sélectionner la ligne 35, je pourrais appuyer sur ma placer la marque a sur la ligne 5, puis :35 passer à la ligne 35. Shift + v pour entrer en mode visuel linéaire, et enfin `a sélectionner en arrière pour marquer a.

192
Jay
G                       Goto line [count], default last line, on the first
                        non-blank character linewise.  If 'startofline' not
                        set, keep the same column.
                        G is a one of jump-motions.

V35G réalise ce que vous voulez

106
bheeshmar

Vim est une langue. Pour bien comprendre Vim, il faut connaître la langue. De nombreuses commandes sont des verbes, et vim a aussi des objets et des prépositions.

V100G
V100gg

Cela signifie "sélectionnez la ligne actuelle jusqu'à la ligne 100 incluse".

Les objets texte sont les endroits où le pouvoir est le plus puissant. Ils introduisent plus d'objets avec des prépositions.

Vap

Cela signifie "sélectionner autour du paragraphe actuel", c'est-à-dire sélectionner le paragraphe actuel et la ligne vide qui le suit.

V2ap

Cela signifie "sélectionner autour du paragraphe actuel et du paragraphe suivant".

}V-2ap

Cela signifie "aller à la fin du paragraphe actuel, puis sélectionnez-le visuellement et le paragraphe précédent."

Comprendre Vim en tant que langue vous aidera à en tirer le meilleur rendement.

Après avoir sélectionné, vous pouvez combiner d'autres commandes:

Vapd

Avec la commande ci-dessus, vous pouvez sélectionner un paragraphe et le supprimer. Remplacez d par y à copier ou par c ou par p à coller.

Une fois que vous avez compris comment toutes ces commandes fonctionnent ensemble, vous n'aurez plus besoin de rien sélectionner visuellement. Au lieu de sélectionner visuellement, puis de supprimer un paragraphe, vous pouvez simplement supprimer le paragraphe avec la commande dap.

79
kzh

v35G sélectionne tout, du curseur jusqu'à la ligne 35.

v vous met en mode sélection, 35 spécifie le numéro de ligne que vous voulez G aller à.

Vous pouvez également utiliser v} qui sélectionnera tout jusqu'au début du paragraphe suivant.

37
michaelmichael

Pour sélectionner le nombre de lignes:

shift + v 9j - selectionner 10 lignes

14
mateusz.fiolka

Shift+V n j ou Shift+V n k

Ceci sélectionne la ligne en cours et les lignes suivantes/précédentes n. Je trouve cela très utile.

8
Peng Zhang

v 35 j

texte ajouté pour 30 caractères minimum

6
µBio
4
Paul

Vous pouvez toujours utiliser des nombres antécédents pour répéter des actions:

  • En mode visuel, tapez 35 et le curseur descendra 35 fois, en sélectionnant les 35 lignes suivantes
  • En mode normal:
    • supprimer 35 lignes 35dd
    • coller 35 fois 35p
    • annuler 35 changements 35u
    • etc.
3
jackson

v%

sélectionnera le bloc entier.

Jouez avec aussi:

v}, vp, vs, etc.

Voir l'aide:

:help text-objects

qui répertorie les différentes façons de sélectionner des lettres, des mots, des phrases, des paragraphes, des blocs, etc.

3
bjfletcher

Vous pouvez appuyer sur vi} pour sélectionner le bloc entouré de {} crochets où votre curseur est actuellement situé.

Peu importe l'endroit où vous vous trouvez à l'intérieur de ce bloc (assurez-vous simplement que vous vous trouvez dans le bloc le plus à l'extérieur). Vous pouvez également remplacer { par tout ce qui a une paire telle que ) ou ].

2
iggy

} signifie déplacer le curseur au paragraphe suivant. utilisez donc v} pour sélectionner un paragraphe entier.

1
mabeiyi

Pour tout sélectionner en mode visuel: Tapez Echap pour vous assurer que vous êtes en mode normal

:0 

tapez ENTER pour aller au début du fichier

vG
0
Sergio Abreu

Cela pourrait être utile de savoir:

Afin de sélectionner le même nombre de lignes, utilisez par exemple 1v. Vous auriez dû effectuer certaines modifications pour pouvoir utiliser 1v, par blocs ou par lignes.

Aujourd'hui, j'ai vu cette astuce incroyable de ici :

 :5mark < | 10mark > | normal gvV
 :5mark < | 10mark > | normal gv

Vous pouvez également réinitialiser les limites des blocs visuels de la manière suivante:

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point
0
SergioAraujo