web-dev-qa-db-fra.com

Lorsque vous utilisez Grep de VIM, comment passer aux résultats?

Lorsque vous utilisez le plugin Grep sur VIM, je peux rechercher dans le répertoire actuel de toutes les occurrences d'une chaîne dans un ensemble de fichiers, comme celui-ci:

:grep Ryan *.txt

Cela génère quelque chose comme ça:

file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue

Si j'appuie sur Entrée, cela me ramène simplement à mon éditeur. Ce que je veux vraiment faire, c'est pouvoir ouvrir l'un de ces fichiers et passer à l'endroit où la chaîne a été trouvée. Y a-t-il un moyen de faire cela? Le 1 of 3 Une partie me fait penser qu'il y a un moyen d'onglet à travers les résultats, mais je ne sais pas quelles commandes sont disponibles pour moi. Quelqu'un peut-il perdre une lumière sur cela?

33
Marplesoft

Lorsque vous appuyez sur Entrée, vous devez rechercher la ligne 3 de File1.txt. Pour passer au match suivant, exécutez :cn; Pour passer au match précédent, exécutez :cp. Exécuter :copen ouvrira une fenêtre contenant la liste des matchs. Déplacez le curseur sur la correspondance souhaitée et appuyez sur ENTER pour passer à cette correspondance.

Pour plus d'utiliser :grep, voir

:help grep
:help quickfix.txt

Taper :cn et :cp Pour aller de l'avant et l'arrière dans la liste Quickfix peut être gênant, alors j'utilise ces mappages:

nmap <silent> <C-N> :cn<CR>zv
nmap <silent> <C-P> :cp<CR>zv

Également :grep la commande n'est pas un plugin; Cela fait partie de Vim.

34
garyjohn