Je voudrais lister les matchs quand je frappe:
/example
de sorte que je vois où tous les matches sont à la fois.
" put in your ~/.vimrc file " START search related configs and helps " " ignore case when searching set ignorecase " search as characters are entered, as you type in more characters, the search is refined set incsearch " highlight matches, in normal mode try typing * or even g* when cursor on ssortingng set hlsearch " yank those cheat commands, in normal mode type q: than p to paste in the opened cmdline " how-to search for a ssortingng recursively " :grep! "\" . -r " " how-to search recursively , omit log and git files " :vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log` " :vimgrep /srch/ `find . -type f -name '*.pm' -o -name '*.pl'` " " how-to search for the "srch" from the current dir recursively in the shell " vim -c ':vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`' " " how-to highlight the after the search the searchable ssortingng " in normmal mode press g* when the cursor is on a matched ssortingng " how-to jump between the search matches - open the quick fix window by " :copen 22 " how-to to close the quick fix window " :ccl " F5 will find the next occurrence after vimgrep map :cp! " F6 will find the previous occurrence after vimgrep map :cn! " F8 search for word under the cursor recursively , :copen , to close -> :ccl nnoremap :grep! "\<\>" . -r:copen 33 " omit a dir from all searches to perform globally set wildignore+=**/node_modules/** " use perl regexes - src: http://andrewradev.com/2011/05/08/vim-regexes/ noremap / /\v " " STOP search related configs and helps
:g//p
Dans sa forme la plus longue:
:global/regular-expression/print
Vous pouvez laisser de côté le motif / regex et Vim réutilisera le terme de recherche précédent.
Trivia: L’outil grep a été nommé d’après cette séquence de commandes.
Vous pouvez aussi faire un:
g/pattern/#
cela imprimera le motif que vous voulez et le numéro de la ligne.
Si vous voulez regarder cette liste et passer rapidement d’un match à l’autre, pensez à utiliser
:vimgrep example %
ou
:grep example %
Cela remplira la “liste des erreurs” avec toutes les correspondances afin que vous puissiez utiliser :copen
pour les lister toutes dans le buffer de quickfix, appuyez sur enter sur une ligne particulière pour accéder à cette correspondance ou utilisez des commandes comme :cn
et :cp
aller et venir
pour une explication approfondie, voir ma réponse à une question similaire
Juste appris un nouveau: la Location List
!
Tapez :lvim foo %
pour rechercher foo
dans le fichier actuel et entrez toutes les correspondances contenant foo
dans la liste des emplacements .
Tapez :lopen
pour ouvrir la liste des emplacements dans la fenêtre de correction rapide, qui est entièrement navigable comme d’habitude.
Utiliser :lnext
/ :lprevious
la liste (utilisez les mappages tpope / unimpaired pour la meilleure expérience)
Une autre possibilité consiste à utiliser les commandes de recherche de fichiers include.
[I
Cela listera toutes les occurrences du mot sous le curseur. Cela peut être plus que ce dont vous avez besoin, car il recherchera également tous les fichiers inclus dans le fichier en cours.
Mais la bonne chose à propos de cette commande est que l’affichage des résultats de la recherche indique également le nombre de correspondances, en plus du numéro de ligne de chaque correspondance.
:help include-search
pour voir beaucoup de variantes.
Une note sur
:g//p
Cela peut être réduit davantage à
:g//
car, comme d’autres l’ont dit, p (rint) est l’action par défaut.
En utilisant :set hlsearch
, vous :set hlsearch
en évidence toutes les correspondances en jaune, ce qui vous permettra de numériser facilement le fichier pour les correspondances. Cela peut ne pas être ce que vous voulez bien, après la recherche: g // p vous donnera les correspondances listées
Pour élaborer là-dessus … au lieu de
/example :g//p
vous pouvez aussi écrire directement
:g/example/p
ou, comme p (rint) est l’action par défaut pour la commande: g (lobal), cela peut être réduit à
:g/example
Et au lieu de p (rint), d’autres actions sont possibles, par exemple d (elete). Voir: aide: global
vous pouvez obtenir une belle fenêtre de quickfix
avec les correspondances de votre modèle de recherche actuel
:vim // % :copen
super pratique si vous avez déjà créé un motif de recherche complexe en utilisant just /pattern
Edit : vient de découvrir que cela fonctionne aussi pour tous les tampons ouverts
:bufdo vimgrepadd // % :copen
g/pattern
Si vous avez :set number
, la commande ci-dessus affiche également les numéros de ligne.
Si vous ne l’avez pas encore fait :set number
g/pattern/#
affichera les numéros de ligne.
Ctrl-f pour lister tous les résultats de la recherche:
nmap :vimgrep ///g % \| !:copen