J'utilise vim depuis un certain temps et je suis conscient que sélectionner des blocs de texte en mode visuel est aussi simple que SHIFT+ Vet déplacer la touche fléchée vers le haut ou vers le bas ligne par ligne jusqu'à ce que j'atteigne la fin du bloc de texte que je veulent sélectionné.
Ma question est la suivante: existe-t-il un moyen plus rapide en mode visuel de sélectionner un bloc de texte, par exemple par SHIFT+ Vsuivi de la spécification du numéro de ligne dans lequel je souhaite que la sélection s'arrête? (via :35
par 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 savoir comment si quelque chose de similaire peut être fait ...)
v%
ouv/pattern
ou autre chose?V35G
sélectionnera visuellement de la ligne actuelle à la ligne 35, égalementV10j
ouV10k
sélectionnera visuellement les 10 lignes suivantes ou précédentesnnoremap <Space> V
. En mode ligne visuelle, faites un clic droit avec la souris pour définir la sélection (du moins sous Linux, il en est ainsi). Quoi qu'il en soit, plus efficace qu'avec le clavier uniquement.Réponses:
En plus de ce que d'autres ont dit, vous pouvez également élargir votre sélection à l'aide de recherches de modèles.
Par exemple, v/foosélectionnera de votre position actuelle à la prochaine instance de "foo". Si vous vouliez réellement passer à l' instance suivante de «foo», à la ligne 35, par exemple, appuyez simplement sur npour étendre la sélection à l'instance suivante, et ainsi de suite.
mettre à 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 veux sélectionner la ligne 35, je pourrais appuyer sur mapour placer une marque
a
sur la ligne 5, puis :35pour passer à la ligne 35. Shift+ vpour passer en mode visuel par ligne, et enfin `apour sélectionner retour pour marquera
.la source
v/foo/e
. Lee
signifie «fin» du motif correspondant.v
i
w
. Si vous souhaitez sélectionner le non-espace contigu actuel, utilisezv
i
Shift
+w
. La différence serait lorsque le curseur est iciMyCla|ss.Method
, le premier combo sélectionneraitMyClass
et le second sélectionnerait le tout.v i w s
vous permet également d'effectuer efficacement une opération de «remplacement».Le V35G réalise ce que vous voulez
la source
Vim est une langue. Pour vraiment comprendre Vim, vous devez connaître la langue. De nombreuses commandes sont des verbes, et vim a également des objets et des prépositions.
Cela signifie "sélectionner la ligne actuelle jusqu'à la ligne 100 incluse".
Les objets texte sont là où se trouve une grande partie de la puissance. Ils introduisent plus d'objets avec des prépositions.
Cela signifie "sélectionner autour du paragraphe actuel", c'est-à-dire sélectionner le paragraphe actuel et la ligne vide qui le suit.
Cela signifie "sélectionner autour du paragraphe actuel et du paragraphe suivant".
Cela signifie "aller à la fin du paragraphe actuel, puis le sélectionner visuellement et le paragraphe précédent".
Comprendre Vim en tant que langue vous aidera à en tirer le meilleur parti.
Après avoir sélectionné vers le bas, vous pouvez combiner avec d'autres commandes:
Avec la commande ci-dessus, vous pouvez sélectionner autour d'un paragraphe et le supprimer. Remplacez le
d
par ay
pour copier ou par ac
pour modifier ou par ap
pour coller.Une fois que vous aurez compris comment toutes ces commandes fonctionnent ensemble, vous n'aurez finalement plus 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
dap
commande.la source
v35G
sélectionnera tout du curseur jusqu'à la ligne 35.v
vous met en mode de sélection,35
spécifie le numéro de ligne vers lequel vous voulezG
aller.Vous pouvez également utiliser
v}
qui sélectionnera tout jusqu'au début du paragraphe suivant.la source
Pour sélectionner le nombre de lignes:
shift + v 9j - sélectionnez 10 lignes
la source
:set rnu
Shift+V n j
ouShift+V n k
Ceci sélectionne la ligne actuelle et les
n
lignes suivantes / précédentes . Je trouve cela très utile.la source
v 35 j
texte ajouté pour 30 caractères minimum
la source
v%
sélectionnera tout le bloc.
Jouez aussi avec:
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.
la source
Objets texte: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
la source
Vous pouvez appuyer sur
vi}
pour sélectionner le bloc entouré de{}
crochets où se trouve actuellement votre curseur.Peu importe où vous vous trouvez à l'intérieur de ce bloc (assurez-vous simplement que vous êtes dans le bloc le plus à l'extérieur). Vous pouvez également changer
{
pour tout ce qui a une paire comme)
ou]
.la source
Vous pouvez toujours simplement utiliser des nombres antécédents pour répéter des actions:
la source
simple il suffit d'appuyer Shift v line number gg
exemple: votre ligne actuelle à la ligne 41 Appuyez simplement sur Shift v 41 gg
la source
} signifie déplacer le curseur vers le paragraphe suivant. donc, utilisez
v}
pour sélectionner le paragraphe entier.la source
Pour tout sélectionner en visuel: tapez Echap pour être sûr que vous êtes en mode normal
tapez ENTER pour aller au début du fichier
la source
gg
en mode normal pour accéder à la première ligne.Il pourrait être utile de savoir:
Afin de sélectionner le même nombre de lignes par exemple, utilisez
1v
Vous devez avoir fait quelques modifications pour pouvoir utiliser1v
, par blocs ou par lignes.Aujourd'hui, j'ai vu cette astuce incroyable d' ici :
Vous pouvez également réinitialiser les limites du bloc visuel en procédant ainsi:
la source
J'utilise ceci avec un pli en mode indent:
v ouvrir le mode visuel n'importe où sur le bloc
zaza toogle deux fois
la source