Sélection visuelle du curseur à la prochaine ligne vide?

11

Comment sélectionner de la ligne actuelle à la ligne vide suivante?

Je connais SHIFT+, Vmais je dois alors passer à la ligne vide suivante ou appuyer plusieurs fois sur la touche Bas. Je sais comment bien faire quand il y a un caractère correspondant comme un }mais je n'ai aucune idée de comment le faire pour une ligne vide.

leeand00
la source

Réponses:

19

Vim comprend le concept de "paragraphe". La définition d'un paragraphe par Vim est un bloc de texte entouré de lignes vides * . Il existe plusieurs mouvements et objets texte pour travailler avec cela.

  • [count]}- Déplacez les [count]paragraphes vers l'avant. Vous pouvez utiliser <S-v>}pour sélectionner toutes les lignes de la ligne actuelle à la ligne vierge suivante. Cela comprendra la ligne vierge, vous pouvez donc utiliser <S-v>}k.
  • [count]ip- Sélectionnez des [count]paragraphes. C'est comme iw(mot intérieur) sauf, eh bien, les paragraphes. L'utilisation de vipsélectionnera cependant tout le paragraphe, plutôt que de la ligne actuelle à la fin du paragraphe.
  • [count]ap- comme ip, sauf que cela inclura les lignes vides entourant le paragraphe.

Une mise en garde ici est que Vim ne considère pas une ligne avec uniquement des espaces comme une "ligne vierge". Assurez-vous donc de vérifier cela (par exemple avec :set list) si cela ne semble pas fonctionner.


N'oubliez pas que vous pouvez toujours rechercher le motif que vous souhaitez. Vous pouvez obtenir une ligne vide avec /^$; ou si vous ne voulez pas sélectionner la ligne vide elle-même, vous pouvez utiliser \n\npour placer le curseur à la fin de la ligne avant la première ligne vierge:

  • <S-v>/^$<CR>
  • <S-v>/\n\n<CR>

* Il y a quelques exceptions, voir :help paragraphpour la logique complète. Mais pour la plupart des intentions et des buts, cette définition fonctionne bien.

Martin Tournoij
la source
12

Un raccourci pour la prochaine ligne vide est }. Donc, vous voudrez peut-être utiliser SHIFT+v}

marderh
la source
1

Il suffit d'appuyer Shift + }sur la ligne vide suivante sans sélection de texte.

Avec Sift + v + }, vim sélectionne le texte de la position actuelle du curseur à la ligne vide suivante et vous devez appuyer sur ESCpour quitter le mode de sélection

Junaid
la source
Pourquoi Shift + }? Un simple }fait le mouvement. Voir d'autres réponses.
Ralf
@Ralf Sift + }pour appeler / entrer le crochet, }sauf si votre clavier prend directement en charge l'insertion }sans appuyerShift
Junaid