Je suis nouveau dans le monde de vim, et j'explore encore certaines de ses fonctionnalités. J'ai un problème avec vimgrep. Je peux rechercher un motif comme ceci vimgrep /define/ **
de sorte qu'il trouve et ouvre le prochain fichier qui contient une define
. Mais je n'ai pas encore trouvé comment passer au fichier/ligne suivant qui correspond à mon modèle. Des pistes ?
Réponses
Trop de publicités?Commandes utiles pour la liste des corrections rapides (parenthèses autour de la partie omettable des commandes) :
-
:cn[ext]
y:cp[revious]
passer à l'entrée suivante et précédente -
:cnf[ile]
y:cpf[ile]
passer au fichier suivant et précédent (si la liste des corrections rapides n'est pas triée par fichier, vous pourriez écrire une fonction quigetqflist()
effectue un tri et ensuitesetqflist()
-
:cr[ewind]
y:cla[st]
aller au début ou à la fin de la liste des corrections rapides -
:col[der]
y:cnew[er]
va itérer à travers les listes historiques de corrections rapides.
Il va sans dire qu'il existe de nombreuses autres commandes et que vous pouvez les découvrir à l'adresse suivante :help quickfix
.
Personnellement, je possède les cartes suivantes :
| ø | SHIFT | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer
Bien sûr, si vous utilisez la liste de localisation au lieu de la liste de correction rapide ( :lvimgrep
) les mêmes commandes existent, il suffit de remplacer l'initiale c
avec un l
et c'est tout.
Ajouts à Vim 8 :
-
:cdo
: exécuter une commande sur toutes les entrées de la liste des corrections rapides. Par exemple:vim /foo/ *.cpp *.h *.hpp
peut être suivi par:cdo s/pattern/replacement/g
-
:cfdo
: exécuter une commande sur tous les fichiers de la liste de Quickfix. Par exemple,:vim /foo/ *.cpp *.h *.hpp
peut être suivi par:cfdo %s/2ndpattern/2ndreplacement/g
Pour passer à l'occurrence suivante du mot, vous pouvez utiliser la commande suivante :cnext
. Vous pouvez faire marche arrière avec :cNext
.
Je ne suis pas sûr qu'il existe un moyen de sauter automatiquement toutes les occurrences jusqu'au prochain fichier, mais vous pourriez ouvrir la fenêtre de correction rapide avec :cwindow
pour voir une liste de correspondances et naviguer vers ces correspondances en appuyant sur Enter sur l'entrée de la liste.