Je suis conscient que je peux utiliser /suivi d'une regex pour chercher quelque chose. Et je peux utiliser ?pour rechercher en arrière. Et je peux utiliser net Nrépéter la recherche en avant et en arrière.
Il y a aussi deux bons raccourcis: *ou #cherchera le mot sous le curseur (avant / arrière). C'est très utile! (il y a aussi g*et g#variantes)
Mais ... Une fois que j'ai sélectionné le texte en mode visuel ( v), comment puis-je demander à Vim de rechercher exactement ce texte? Un rapide coup d'œil :help
ne m'a pas aidé, hein.
*
et#
! Serait bien si votre question expliquerait aussi quoig*
etg#
ferait;)Réponses:
La séquence suivante fera ce que vous voulez, en fonction d'un bloc de texte déjà sélectionné:
"
registre par défaut)"
registre)(*) Le mode "très peu de magie" interprète le texte suivant comme du texte brut au lieu d'une expression régulière. notez cependant que
\
et/
sont toujours spéciaux et devront être traités de manière différente. Si le texte ne contient aucun caractère considéré comme spécial, vous pouvez ignorer cette étape.Source: Wiki Conseils Vim
la source
Vous pouvez d’abord tirer le texte en surbrillance. ensuite
/
Ctrlr
"
Ce qui va coller ce que vous avez tiré après le /.
la source
/\V<C-r>"
place. En ajoutant les éléments\V
à votre requête de recherche, vous indiquez à vim d’utiliser "très peu de magie". Les barres obliques inverses peuvent encore vous causer des problèmes. Voir:help \V
Ctrl+R
vous accédez ainsi à un registre et qu'il*
s'agit simplement du registre du presse-papier du système. Par exemple, vous pouvez également faire:yaw
insérer un mot dans le registre"
(le registre par défaut), puis/<C-r>"
rechercher cette chaîne./
pour effectuer votre recherche, utilisez-la?
plutôt, car les recherches inversées échappent par défaut aux barres obliques. Ensuite, vous pouvez appuyer surN
pour poursuivre votre recherche en avant.Je n’ai jamais ressenti le besoin d’une telle fonctionnalité, mais, étant donné que vous pouvez trouver une quelconque fonctionnalité sur Vim, je pense que cela devrait aider:
Je ne l'ai pas testé mais, en regardant le code, il semble être exactement ce que vous recherchez.
la source
Vous pouvez trouver une méthode pour créer ce comportement ici sur le wiki vim .
la source
vnoremap // y/\V<C-r>=escape(@",'/\')<CR><CR>
Cette solution optimise le contexte sélectionné visuellement pour votre recherche vim, même avec des caractères multilignes et d'échappement.
Ajoutez le code suivant en vous
.vimrc
et recherchez votre contenu sélectionné visuellement par//
. Vous pouvez également remplacer globalement le contenu sélectionné par/s
. Ou remplacez localement le contexte sélectionné en//
premier, puis sélectionnez visuellement une région et:'<,'>s//{new_text}
.La configuration ci-dessus concerne uniquement la recherche. Pour toute ma configuration vim, s'il vous plaît visitez .vimrc
la source
Dans mes configurations sur deux machines distinctes, si je sélectionne du texte puis que je clique
/
dessus, il recherche automatiquement le texte sélectionné.la source