Bienvenido a la décimo cuarta entrega del curso sobre cómo usar Vim, el editor de código más productivo. Esta semana hablaremos de sustituciones.
En el anterior post estuvimos hablando acerca de la elaboración de patrones de búsqueda. Hoy, vamos a utilizar lo aprendido anteriormente para entender el funcionamiento de uno de los comandos Ex más poderosos que encontraremos en Vim, las sustituciones.
Hablaremos de los diferentes modos de sustitución y de ciertos aspectos que debemos tener en cuenta para sacar el mejor provecho a este comando, además de algunos trucos útiles como por ejemplo volver a utilizar los patrones de búsqueda anteriores para no tener que repetir las búsquedas o que Vim nos pida confirmación por cada encuentro. Los más avanzados también podrán usar scripts de Vim en las sustituciones con las que incluso se pueden realizar operaciones aritméticas, pero enseñar el lenguaje de Vim queda por encima del objetivo de este curso.
El comando sustituir
El comando :substitute
es un comando que puede parecer más complejo que el típico ctrl+f
de otros editores de código, le proporcionaremos un patrón de búsqueda y después el texto que queramos sustituir. Su complejidad radica en las múltiples opciones que cambiarán el comportamiento de este comando, esas opciones son llamadas flags. El comando sustituir tiene la siguiente estructura:
:[range]s[ubstitute]/{pattern}/{string}/[flags]
Estas son unas cuantas flags útiles (para más información consultad :h :s_flags
):
g
: hace que el comando de sustitución actúe de forma global, cambiando cada patrón que encuentre en una línea en lugar de cambiar únicamente el primero.c
: nos da la oportunidad de confirmar los cambios, para mí es una de las más útiles.n
: suprime el comportamiento habitual del comando sustituir, nos informa del número de casos que se verían afectados si ejecutásemos el comando.&
: esta flag le indica al comando sustituir que reutilice las flags del comando anterior.
Es importante saber los caracteres especiales que podemos usar como reemplazo (para más info consultad :h sub-replace-special
):
r
: inserta un retorno de carro (en palabras llanas, un enter).t
: inserta una tabulación.\
: inserta un, como es un carácter que se usa como especial necesita estar precedido de un
.
1
: inserta el primer submatch (lo veremos en acción enseguida).2
: inserta el segundo submatch, y así sucesivamente.