2008-09-19 5 views
185

Je recherche "nurple" dans un fichier. Je l'ai trouvé, génial. Mais maintenant, chaque occurrence de "nurple" est rendue en noir malade sur jaune. Pour toujours. Pour toujours, c'est-à-dire, jusqu'à ce que je recherche quelque chose que je sais ne sera pas trouvé, comme "asdhfalsdflajdflakjdf" simplement pour effacer la recherche en surbrillance précédente. Je ne peux pas simplement appuyer sur une touche magique pour supprimer les hautes lumières quand j'ai fini de chercher?Comment faites-vous pour vim unhighlight ce que vous avez cherché?

+2

double possible de [dernière mise en évidence de Vim recherche clair] (http://stackoverflow.com/questions/657447/vim-clear-last-search-highlighting) –

+8

'/ ' – naught101

+0

Certainement un doublon de https://stackoverflow.com/questions/657447/vim-clear-last-search-highlighting et devrait être fermé pour diriger les gens là-bas –

Répondre

146

Il suffit de mettre dans votre .vimrc

" <Ctrl-l> redraws the screen and removes any search highlighting. 
nnoremap <silent> <C-l> :nohl<CR><C-l> 
+11

Oooh, c'est un goodie. J'ai utilisé/@@ qui fonctionne tant qu'il n'y a pas de @@ dans mes fichiers. Je dois modifier mon vimrc MAINTENANT! – paxdiablo

+2

C'est super, guéri beaucoup de mes maux de tête! Je pense, il est préférable d'utiliser la commande complète dans vimrc (: nohlsearch) pour éviter les conflits à l'avenir. – Amit

+0

Je ne pense pas ctrl-l fonctionne .. juste essayé. – trillions

295

:noh (abréviation de nohighlight) fera l'affaire.

+53

N'ayez pas peur, la surbrillance revient à la recherche suivante. La commande devrait probablement s'appeler clearhighlight. – steamer25

+6

Quatre ans de retard, mais merci. C'est une bonne chose. – kmarks2

+1

@ kmarks2 vous voir prochaine année bissextile, je suppose? – user1610406

9
 
      *:noh* *:nohlsearch* 
:noh[lsearch]  Stop the highlighting for the 'hlsearch' option. It 
      is automatically turned back on when using a search 
      command, or setting the 'hlsearch' option. 
      This command doesn't work in an autocommand, because 
      the highlighting state is saved and restored when 
      executing autocommands |autocmd-searchpat|. 
      Same thing for when invoking a user function. 

Je l'ai trouvé un peu moins :help #, que je continue à frapper tout le temps, et qui met en évidence tous les mots sur la page en cours comme celui en cours .

+0

Sur une note de côté, il est étrange que l'on doive: noh pour désactiver la recherche en surbrillance tandis qu'au lieu de: hlsearch on doit mettre hlsearch pour le rallumer. (Je suppose que je ne devrais pas être surpris par vim "bizarre" ...) –

14

ajoutez la ligne suivante à la fin de votre .vimrc pour empêcher tout à fait mettre en évidence:

set nohlsearch 
2

Il est hlsearch et nohlsearch. :help hlsearch fournira plus d'informations.

Si vous voulez lier F12 pour l'activer/désactiver, vous pouvez utiliser ceci:

map  <F12> :nohlsearch<CR> 
imap <F12> <ESC>:nohlsearch<CR>i 
vmap <F12> <ESC>:nohlsearch<CR>gv 
63

/lkjasdf a toujours été plus rapide que :noh pour moi.

+25

Faire cela devant quelqu'un qui connaissait mieux Vim que moi, c'est comment j'ai appris à propos de: nohls. –

+16

C'est dégueulasse! Il ajoute 'lkjasdf' à votre historique de recherche. – nelstrom

+2

alors faites ': noh' plus vite pour vous:' nnoremap h: noh ' – Vince

19

Alors je préfère ceci:

map <F12> :set hls!<CR> 
imap <F12> <ESC>:set hls!<CR>a 
vmap <F12> <ESC>:set hls!<CR>gv 

Et pourquoi? Parce qu'il bascule le commutateur: si la surbrillance est activée, puis en appuyant sur F12 l'éteint. Et vice versa. HTH.

+1

Cela peut également être accompli avec le paramètre "invhlsearch". –

+0

J'aime ça, mais je pense que votre mapping 'i' serait meilleur avec' gi' au lieu de 'a'. Soit cela ou ': définir hls! '. – DJMcMayhem

+0

mais 'F12' est ma clé yakuake :( – naught101

4

Je recherche si souvent que je l'ai trouvé utile de cartographier la clé underscore pour supprimer le point culminant de la recherche:

nnoremap <silent> _ :nohl<CR> 
3

J'ai dans mon .vimrc:

nnoremap ; :set invhlsearch<CR> 

De cette façon ,; activera la surbrillance de la recherche. Normalement, le; La touche répète la dernière commande t/T/f/F, mais je n'ai jamais vraiment utilisé cette fonctionnalité. Je trouve ce paramètre beaucoup plus utile, parce que je peux changer très rapidement la mise en surbrillance de la recherche et avoir un aperçu de mes résultats de recherche en un coup d'œil.

4

Je pense que la meilleure réponse est d'avoir un raccourci leader:

<leader>c :nohl<CR> 

Maintenant, chaque fois que vous avez votre document tout mis au rebut avec les termes mis en évidence, vous venez de frapper, c (je mon chef mappée à une virgule) . Fonctionne parfaitement.

+0

' map c: nohl 'serait ce dont vous avez besoin dans vimrc – tsg

18
" Make double-<Esc> clear search highlights 
nnoremap <silent> <Esc><Esc> <Esc>:nohlsearch<CR><Esc> 
+2

Pourquoi est-ce pas plus élevé, c'est plus simple et plus intuitif que beaucoup de méthodes ci-dessus. –

+1

Aime! Merci! – Adam

0

ajouter le mappage suivant à mon ~/.vimrc

map e/ /sdfdskfxxxxy 

Et en mode ESC, je presse De plus, si vous voulez avoir un toogle et être sûr que le point culminant sera réactivé pour le t

0

il la prochaine fois que vous recherchez quelque chose, vous pouvez utiliser cette

nmap <F12> :set hls!<CR> 
nnoremap/:set hls<CR>/ 
Questions connexes