En utilisant Vim, je me retrouve parfois à regarder une section de code source pendant un certain temps et je veux soudainement qu'une variable à l'écran apparaisse. C'est simple: /<var>
ce qui les met tous en valeur. Mon problème est que le plus souvent, la recherche déplace ma fenêtre, donc je ne regarde pas le code source du même endroit. Même si ce n'est que quelques lignes décalées, cela me décourage encore car j'ai besoin de prendre quelques secondes pour comprendre où les choses se sont déplacées.
Est-il possible de mettre en évidence un terme de recherche sans déplacer le curseur sur la correspondance suivante?
vim
search
highlighting
Andrew Wood
la source
la source
Réponses:
http://vim.wikia.com/wiki/VimTip1572
Si vous avez utilisé ce plugin, vous pouvez simplement activer la fonctionnalité
\ m
puis utilisez une touche du pavé numérique pour attribuer une couleur à ce mot partout sans déplacer votre curseur.
1
Vous pouvez utiliser de nombreux surlignages différents à la fois pour de nombreux mots différents, ou des modèles de recherche plus complexes si vous le souhaitez.
la source
La réponse de skyblue montre l'essentiel de l'idée d'utiliser la surbrillance de recherche normale pour accomplir ce que vous voulez.
J'ai étendu cette technique en créant une liaison de touches qui fonctionne de manière similaire à la
*
commande , mais sans passer réellement à la correspondance suivante.Mes remerciements vont à garyjohn pour avoir souligné l'
expand()
équivalent de*
la sélection de mots de (pour éviter de s'utiliser*
et de restaurer la vue). Cela simplifie suffisamment le code pour qu'il puisse aller directement dans le mappage (évite l'utilisation d'une fonction). J'ai également ajouté un mappage qui correspond à des mots partiels (commeg*
).la source
normal *
en remplaçantlet @/ = @/
parlet @/ = expand("<cword>")
.*
, mais<cword>
c'est bien.Vous pouvez également définir le registre de recherche sur la variable que vous souhaitez faire correspondre.
Tout d'abord, assurez-vous que la mise en surbrillance de la recherche est activée:
Ensuite, vous pouvez définir le registre de recherche avec:
Cela mettra en évidence toutes les occurrences de variable sans passer à la correspondance suivante.
Pour plus d'informations, voir
:help @/
la source
Une façon consiste à utiliser la
:match
commande, par exemple,Cela mettra en surbrillance le mot sous le curseur à l'aide du groupe de surbrillance Question. J'utilise souvent le groupe Question car sur mon terminal c'est un joli vert. Pour voir les groupes de surbrillance disponibles, exécutez
Les symboles
^R
et^W
sont Ctrl-R et Ctrl-W, respectivement, et sont remplacés par le mot sous le curseur. Voirpour en savoir plus. Voir
pour en savoir plus sur la
:match
commande. Pour effacer cette surbrillance, exécutez simplementsans arguments.
la source
En plus de:
Vous voudrez peut-être:
la source
Semblable à
*
nous avons:Cela vaut la peine d'y jeter un coup d'œil
:h [I
. nous y trouvons des choses intéressantes liées à vos besoins.Il y a une question similaire sur stackoverflow où je mets ma réponse (un peu plus complète)
la source