2017-01-18 6 views
0

Si j'utilise: vimgrep, il recherche tous les fichiers dans le répertoire courant. Mais mon exigence est de rechercher/remplacer parmi tous les fichiers ouverts.vim: Comment chercher/remplacer dans tous les fichiers ouverts?

E.g. J'utilise vim pour ouvrir 3 fichiers en même temps

vim 1.cpp 2.cpp 3.cpp 

Je souhaite:

  1. recherche toutes les fonctions appelées « principal » et l'affichage dans la fenêtre quickfix, parmi les 3 fichiers .

  2. Remplacer tout "bonjour" par "monde" dans tous les 3 fichiers.

Répondre

2

Utilisez la commande:

bufdo s/string/replacement/g

bufdo: action sur tous les tampons.
s: en remplacement de
g: globalement.

-1

Vous pouvez utiliser le mode de commande. % s/(FindString)/(replaceString)

+0

qui remplacera dans un seul fichier. La question concerne le remplacement des chaînes dans tous les fichiers ouverts en même temps. – JJJ

4

Si votre Vim est assez récent, vous pouvez utiliser la commande :cdo:

:vimgrep main {1,2,3}.cpp 
:cwindow 
:cdo s/foo/bar/g