J'adore le paramètre "hlsearch", mais une fois la recherche terminée, je le trouve désagréable. Surtout si je recherche quelque chose qui a beaucoup de correspondances. Je sais que je peux désactiver cela avec
:set nohlsearch
Mais cela prend 16 touches, et encore plus ennuyeux, je dois le réactiver pour ma prochaine recherche avec
:set hlsearch
Existe-t-il un moyen d'activer ou de désactiver automatiquement hlsearch lorsque je commence la recherche, et de le désactiver une fois la recherche terminée? Par exemple, si j'entre en mode insertion ou modifie le texte, la recherche hls est-elle désactivée sans aucune touche supplémentaire?
/
ou?
, ou si j'appuie surn
ouN
, il s'allumera sans que j'aie besoin d'appuyer sur d'autres boutons.:nno <BS> :set hls!\|set hls?<CR>
- une ligne, une pression sur une touche, un retour d'état et n'essaie pas de deviner quand vous voulez ou non mettre en surbrillance. Parfois, je veux mettre en surbrillance à gauche lors de l'édition. Parfois, je ne le fais pas, par exemple en utilisant/
comme mouvement avec un opérateur.nnoremap <M-\> :set hlsearch!<CR><Bar>:echo 'hlsearch: ' . ['Off', 'On'][&hlsearch]<CR>
Réponses:
Il existe un moyen beaucoup plus pratique. Plutôt que d'utiliser
qui désactive en fait le paramètre hlsearch, utilisez
Cela désactivera uniquement la recherche jusqu'à ce que vous effectuiez une nouvelle recherche. De
:help nohls
Cependant, cette solution n'est pas parfaite, car vous devez toujours taper ce
:nohls
qui est pénible à faire après chaque recherche. Vous pouvez contourner cela avec une cartographie, par exempleMais il existe une solution encore meilleure ! haya14busa / incsearch.vim . C'est, au moins à mon avis, un plugin vim essentiel . La caractéristique principale est que toutes les correspondances de recherche sont mises en évidence en temps réel, lorsque vous tapez votre expression régulière. Par exemple:
Cependant, une fonctionnalité secondaire également fournie est l'option d' activer et de désactiver immédiatement hlsearch lorsque vous démarrez / arrêtez la recherche. Pour activer cette fonction, vous devrez ajouter
à votre
.vimrc
.Si vous avez d'autres
n
mappages, vous devrez les désactiver. Par exemple, j’avaisCes deux mappages ne sont pas compatibles l'un avec l'autre!
la source
set hlsearch
. Si vous l'avez défini,vimrc
il sera écrasé à:noh
chaque fois que vous sourcez le fichiervimrc
. Pour régler ce problème, je l'aiif !&hlsearch | set hlsearch | endif
dans monvimrc
. (Et c'est un autre problème que le plugin résout.)vim-cool est un plugin simple qui fait exactement cela.
Il fonctionne sans remappage en utilisant les commandes automatiques
CursorMoved
etInsertEnter
.la source
J'utilise
<Leader><Enter>
comme raccourci vers:noh
. (Mon chef est,
, donc c'est assez proche)Cela désactivera les surbrillances jusqu'à votre prochaine recherche.
la source
Comme vous l'avez déjà noté dans votre propre réponse , il est beaucoup plus efficace de désactiver la mise en surbrillance avec la
:nohlsearch
commande (qui peut être abrégée en:noh
) plutôt que de désactiver l'intégralité de la fonctionnalité, puis de la réactiver lors de votre prochaine recherche.Si vous souhaitez désactiver la mise en surbrillance à chaque fois que vous utilisez pour passer en
i
mode insertion, vous pouvez créer un mappage simple pour ce faire:Il s'agit d'un exercice pour le lecteur de créer des mappages similaires pour d'autres commandes où il souhaite désactiver la mise en surbrillance.
la source
Cela peut sembler stupide ou naïf, mais ce que je fais quand je veux arrêter la mise en évidence, c'est que je recherche une chaîne aléatoire qui (pratiquement certainement) n'est pas présente dans le document. Quelque chose comme ça:
Certes, cela prend quelques touches, mais elles sont vraiment aléatoires, elles peuvent donc être tapées en un rien de temps.
la source
n
etN
ne fonctionne plus, et aussi des choses comme:%s//something
ou:g//something
. Il encombre également votre historique de rechercheJ'ai trouvé plus intuitif de remapper le Ctrl- Lrepeindre pour inclure
:nohls
:la source
:help
sections pertinentes !J'utilise
<Leader><Enter>
comme raccourci:hls
et mon leader est défini comme espace.Après avoir recherché un élément sera mis en surbrillance, pour le désactiver, appuyez sur
<Space><Esc>
. Et si vous décidez de réafficher les résultats de la recherche, appuyez sur<Space><Esc>
. Leshls!
moyens mappent cette liaison de clé pour basculer le paramètre pourhls
(raccourci pourhlsearch
, c'est-à-dire surligner les résultats de la recherche) (donc le!
bascule le paramètre juste avant).la source
Ajoutez cette macro à votre .vimrc
Cela vous permettra de basculer le hilighting avec #h
la source