J’utilise les plugins vim et vim pour Visual Studio lors de l’écriture de C ++. Souvent, je cherche à rechercher une chaîne dans une fonction, par exemple chaque appel à object->public_member.memberfunc()
.
Je sais que vim offre un moyen pratique de rechercher un seul mot, en appuyant sur *
et #
, et il peut également rechercher des chaînes typées en utilisant la barre oblique /
commande omniprésente. Lorsque vous essayez de rechercher toutes les instances d’une chaîne plus longue comme celle ci-dessus, il faut un certain temps pour taper à nouveau après /
.
Existe-t-il un moyen de rechercher une sélection? Par exemple, mettez en surbrillance avec v
, puis copiez avec y
, y
-t-il un moyen de coller après /
? Y a-t-il un raccourci plus facile?
Vérifiez cette astuce Vim: Recherchez le texte sélectionné visuellement
Ou vous pouvez simplement tirer le texte sélectionné avec y et aller au mode de recherche / , alors vous pouvez coller le dernier texte tiré avec Ctrl + R 0
En vous appuyant sur la réponse d’Arcanex, voici une autre façon de faire ce que vous voulez.
Explication
q/
fonctionne de manière similaire à la recherche vanilla /
sauf que vous êtes en mode commande, alors p
fait réellement “coller” au lieu de taper le caractère p
. Donc, ce qui précède va casser les caractères que vous recherchez, puis les coller dans une recherche.
(voir :help q/
)
Utilisez q / au lieu de / (Identique à q:) . Vous pouvez maintenant éditer VIM via votre historique de commandes et de recherches! (Essayez Ctrl-N et Ctrl-P parfois).
Je viens d’apprendre (à travers l’excellent livre Practical Vim ) qu’il existe un plugin pour cela. Vous pouvez trouver le plugin sur GitHub .
Le plugin vous permet de rechercher une sélection visuelle avec *
et #
.
Vous pouvez réellement sélectionner le texte visuellement et appuyer sur * et # pour rechercher la prochaine occurrence … Cela fonctionnera de la même manière, la seule mise en garde est que:
Les espaces dans la sélection correspondent à n’importe quel espace, lors de la recherche (la recherche de “hello world” trouvera également “hello” à la fin d’une ligne, avec “world” au début de la ligne suivante).