Tuve una situación en la que quería reemplazar FOO con BAR a través de un archivo; sin embargo, solo quiero hacerlo en ciertos lugares, por ejemplo, entre las líneas 68-104, 500-537 y 1044-1195. En la práctica se me cayó marcadores (MA, MB, MC, ...) en las líneas de interés, y me encontré lo siguiente:Vim búsqueda y reemplazo - confinar a ciertas líneas
:'a,'b s/FOO/BAR/g | 'c,'d s/FOO/BAR/g | 'e,'f s/FOO/BAR/g
tuve que repetir esto decenas de veces con diferentes términos de búsqueda y reemplazo s/CAT/DOG, etc., que se convirtió en un problema tener que volver a escribir la línea de comando cada vez. Tuve suerte porque solo tenía 3 lugares en los que quería limitar mi búsqueda (imagínese si hubiera 30 o 40, qué desordenado sería la línea de comando).
Si no se escribe una función, ¿hay alguna manera más clara de hacerlo?
En una nota relacionada. Copié FOO a la 's' (búsqueda) se registra, y un bar a la 'r' (reemplazar) y trató de una línea de comandos de
:'a,'b s/\[email protected]/\[email protected]/ | 'c,'d s/\[email protected]/\[email protected]/ | 'e,'f s/\[email protected]/\[email protected]/
Esto habría ahorrado yo tenga que volver a escribir la línea de comandos cada tiempo, pero lamentablemente no funcionó. El bit de reemplazo estaba bien \ = @ r, pero los \ = @ s en el patrón de búsqueda dieron un error.
Cualquier consejo sería apreciado.
También puede utilizar CONTROL-P y DE CONTROL -N (creo) para pasar por los comandos anteriores. Esto debería eliminar la necesidad de volver a escribir comandos. – jahroy
es habitual aceptar una respuesta, si fue útil. – epsilonhalbe