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 déplacer la flèche vers le haut ou vers le bas ligne par ligne jusqu'à ce que j'atteigne la fin du bloc de texte que je veux sélectionner.

Ma question Est-y a-t-il un moyen plus rapide en mode visuel de sélectionner un bloc de texte par exemple par Maj+V suivi en spécifiant le numéro de ligne dans lequel je veux que la sélection s'arrête? (via :35 pour exemple, où 35 est le numéro de ligne que je veux sélectionner jusqu'à-cela ne fonctionne évidemment pas, donc ma question Est de trouver comment si quelque chose de similaire à cela peut être fait...)

147
vim
demandé sur dcharles 2011-09-13 22:52:24

14 réponses

En plus de ce que d'autres ont dit, Vous pouvez également élargir votre sélection en utilisant des recherches de motifs.

Par exemple v/foo va sélectionner à partir de votre position actuelle à l'instance suivante de "foo."Si vous voulez réellement étendre à l'instance next de "foo", à la ligne 35, par exemple, appuyez simplement sur n pour étendre la sélection à l'instance suivante, et ainsi de suite.

Mettre à jour

Je ne le fais pas souvent, mais je le sais certaines personnes utilisent largement les marques pour faire des sélections visuelles. Par exemple, si je suis sur la ligne 5 et je veux choisir à la ligne 35, je peut appuyer sur mun pour placer la marque a sur la ligne 5, puis :35 pour passer à la ligne 35. Maj + v entrer linewise mode visuel, et enfin `un pour sélectionner le dos pour marquer a.

169
répondu Jay 2015-09-10 12:16:16
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

101
répondu bheeshmar 2011-09-13 19:00:04

Vim est une langue. Pour vraiment comprendre Vim, vous devez 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électionner la ligne actuelle jusqu'à la ligne 100 incluse."

Les objets texte sont l'endroit où une grande partie de la puissance est à. 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 suivante il.

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électionner visuellement et le paragraphe précédent."

Comprendre Vim en tant que langue vous aidera à obtenir le meilleur kilométrage.

Après avoir sélectionné vers le bas, vous pouvez combiner avec d'autres commandes:

Vapd

Avec la commande ci-dessus, vous pouvez sélectionner autour d'un paragraphe et le supprimer. Modifier les d pour un y à copier ou à un c pour modifier ou à un p coller sur.

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

69
répondu kzh 2014-12-03 14:43:56

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

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

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

35
répondu michaelmichael 2011-09-13 19:04:48

Pour sélectionner le nombre de lignes:

Maj + V 9j-sélectionner 10 lignes

11
répondu mateusz.fiolka 2011-09-13 18:58:34

V 35 J

Texte ajouté pour un minimum de 30 caractères

6
répondu µBio 2011-09-13 18:55:14

Shift+V n j ou Shift+V n k

Cette option sélectionne la ligne courante et les lignes n suivantes/précédentes. Je trouve cela très utile.

5
répondu Peng Zhang 2016-02-17 03:28:45

v%

Sélectionnera le bloc entier.

Jouer avec aussi:

v}, vp, vs, etc.

Voir 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
répondu bjfletcher 2014-09-16 10:42:50

Vous pouvez toujours utiliser des nombres antérieurs pour répéter les actions:

  • en mode visuel, tapez 35↓ et le curseur se déplacera 35 fois vers le bas, en sélectionnant les 35 lignes suivantes
  • en mode normal:
    • supprimer les 35 lignes 35dd
    • , collez 35 fois 35p
    • annuler les changements 3535u
    • etc.
3
répondu jackson 2015-05-19 13:00:21

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

Peu importe où vous êtes à l'intérieur de ce bloc (assurez-vous simplement que vous êtes dans le bloc le plus externe). Vous pouvez également changer { en tout ce qui a une paire comme ) ou ].

1
répondu iggy 2015-11-18 18:12:33

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

0
répondu mabeiyi 2014-11-07 19:44:55

Pour sélectionner tout dans visual: Tapez Esc pour être sûr que yor sont en mode normal

:0 

Tapez entrée pour aller au début du fichier

vG
0
répondu Sergio Abreu 2017-01-20 16:24:45

Il pourrait être utile de savoir:

Pour sélectionner le même nombre de lignes, utilisez par exemple 1v Vous auriez dû faire quelques modifications pour pouvoir utiliser 1v, blockwise ou linewise.

Aujourd'Hui j'ai vu cette incroyable pointe de ici:

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

Vous pouvez également réinitialiser les limites du bloc visuel en procédant ainsi:

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point
0
répondu SergioAraujo 2017-09-26 20:39:28