Hay varias formas de hacerlo.
Directorio actual interno
Si desea realizar la búsqueda / reemplazo en un árbol de proyecto, puede usar la lista de argumentos de Vim .
Simplemente abra Vim y luego use el :argscomando para completar la lista de argumentos. Puede pasar varios nombres de archivo o incluso globos.
Por ejemplo, :args **/*.rbbuscará de forma recursiva el directorio actual en busca de archivos ruby. Tenga en cuenta que esto también es como abrir Vim con vim **/*.rb. Incluso puede usar el findcomando del shell para obtener una lista de todos los archivos en el directorio actual ejecutando:
:args `find . -type f`
Puede ver la lista de argumentos actuales ejecutándose :argssolo. Si desea agregar o eliminar archivos de la lista, puede usar :argaddlos :argdeletecomandos o respectivamente.
Una vez que esté satisfecho con la lista, ahora puede usar el poderoso :argdocomando de Vim que ejecuta un comando para cada archivo en la lista de argumentos::argdo %s/search/replace/g
Aquí hay algunos consejos para buscar (basados en algunos de los comentarios):
- Use un límite de palabra si desea buscar "foo" pero no "foo_bar". Use las construcciones
\<y \>alrededor del patrón de búsqueda de la siguiente manera::argdo %s/\<search\>/foobar/g
- Use una
/cmarca de búsqueda si desea que Vim solicite confirmación antes de reemplazar un término de búsqueda.
- Use una
/emarca de búsqueda si desea omitir los errores de "patrón no encontrado".
- También puede optar por guardar el archivo después de realizar la búsqueda:
:argdo %s/search/replace/g | update. Aquí, :updatese usa porque solo guardará el archivo si ha cambiado.
Tampones abiertos
Si ya tiene búferes abiertos en los que desea realizar la búsqueda / reemplazo, puede usar :bufdo, que ejecuta un comando para cada archivo en su lista de búferes ( :ls).
El comando es muy similar a :argdo: :bufdo %s/search/replace/g
Similar a :argdoy :bufdo, hay :windoy :tabdoque actúan en ventanas y pestañas respectivamente. Se usan con menos frecuencia pero aún son útiles para saber.
/cbandera para confirmar las sustituciones.