95 votes

Débarrassez-vous de la surbrillance de Vim après la recherche de texte

Dans VIM, après avoir trouvé du texte avec la commande "/", ce texte reste en surbrillance.

Quelle est la commande pour supprimer cela ? Je ne veux pas du tout supprimer la fonction de surlignage, mais je ne veux pas avoir toutes ces taches de texte brillant une fois que j'ai trouvé ce dont j'ai besoin.

Merci.

4 votes

4 votes

148voto

Andrew Clark Points 77748

Tapez ça :

:noh

11 votes

...qui est le diminutif de :nohlsearch ce qui devrait vous aider à vous en souvenir !

45 votes

J'ai :noh cartographié comme tel : nnoremap <silent> <esc> :noh<cr><esc> Je trouve que la touche Echap est un moyen naturel pour vim d'effacer la surbrillance de la recherche.

8 votes

Il peut être utile de noter que cette n'a pas désactiver la mise en évidence de la recherche, cela efface simplement la mise en évidence actuelle (ce qui est ce que je veux).

34voto

denis phillips Points 7349

Vous pouvez le basculer avec

:set hls!

Bien sûr, une alternative rapide et sale est de faire une autre recherche de charabia :

/asdsad

J'associe généralement une clé à :set hls! pour rendre cela plus facile et utiliser l'approche du charabia lorsque je suis dans vim sur une machine sur laquelle je n'ai pas installé mon profil.

1 votes

La recherche de charabia présente un inconvénient de taille : elle ajoute des déchets à l'historique des recherches. Cela peut être gênant pour certains utilisateurs, de la même manière que les surlignages redondants distraient du travail à effectuer.

0 votes

Si vous avez le 'incsearch' (qui est une excellente option), la recherche de charabia fera sauter votre écran à des endroits aléatoires pendant que vous tapez ledit charabia. Lier une touche du mode normal à :nohlsearch est juste tellement mieux sur tous les aspects.

16voto

the Tin Man Points 69148

Je suis paresseux et je tape quelque chose comme /asdf puis tapez sur le RETURN clé.

12voto

sashang Points 4548

J'ai ceci dans mon .vimrc :

map <leader>h :set hlsearch!<cr>

Donc quand je tape :

\h

Il permet d'activer ou de désactiver la mise en évidence.

10voto

Tom Miller Points 443

Si vous ne voulez pas supprimer la mise en évidence, l'un des meilleurs moyens est d'effacer le registre de recherche, à moins bien sûr que vous n'ayez besoin des éléments de recherche ultérieurement. Vous pourrez ainsi vous éviter d'avoir à réactiver la mise en évidence et les (Edit : noh ne désactive pas définitivement la mise en évidence) pour éviter que vous ne sautiez accidentellement. C'est comme ça que j'ai installé le mien :

nmap <silent> ,/ :let@/=""<CR>

Ce que cela fait, c'est mettre en correspondance la séquence de touches ,/ en mode normal pour effacer le registre de recherche @/ en lui donnant la valeur d'une chaîne vide. Il s'agit simplement d'une alternative à ce qui a déjà été dit.

1 votes

Il y a deux perles dans votre réponse. Pourquoi ne pas les combiner ? nmap <silent> ,/ :nohlsearch<CR> .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X