Reemplazos en Vim
Nov 7, 2016Estos son algunos de los reemplazos que se pudieran realizar en vim:
:s/\zs/\r/g
will have this string of characters: abcdefghi
tendrá esta cadena de caracteres: abcdefghi
result:
a
b
c
d
e
f
g
h
i
Por otra parte la siguiente ejecución:
:s/\s/\r/g
will have
esto es una prueba
result:
esto
es
una
prueba
and :s/\n//g
will have something like
a
b
c
d
results:
abcde
:s/\n/ /g
will have something like
esto
es
una
prueba
result: esto es una prueba
por supuesto, se puede ver que en algunos casos se utiliza \n
, mientras que en otros se utiliza \r
, es necesario recordar que en cada reemplazo y substitución en vim, se logra mediante :s/texto para reemplazar/substituir con
.
Primero antes que todo el delimitador de barra oblicua /
es la separación de lo que se quiere modificar con lo que se modificaría.
Es decir, por ejemplo, donde texto para reemplazar
es la expresión regular que se desea cambiar, o los caracteres del texto que se desean modificar, mientras que substituir con
es el nuevo ingreso que tomará lugar.
En este caso, para entender este procedimiento, no hay mejor ayuda en vim, que ir directo a la documentación con :help \n
o mediante :h \n
para abreviar, y también entender el por qué difiere de :help \r
Creo que una de las mejores respuestas sobre esto, se encuentra en http://stackoverflow.com/a/18961239 que especifica que “in the syntax s/foo/bar
, \r
and \n
have different meanings depending on context.
En nuestro caso sería s/texto para reemplazar/substituir con
.
Por lo tanto esto equivaldría a:
En el caso de texto para reemplazar
, es decir, s/<texto para reemplazar>
antes del segundo delimitador /
:
\n
sería una newline o un salto de línea.
\r
en este caso sería CR que es la tecla Enter
, tecla de retorno o de regreso.
En el caso de substituir con
, es decir, s/<texto para reemplazar>/<substituir con>
, o los caracteres que se encuentren después de la segunda barra /
:
\n
seria un octeto nulo
\r
en este caso es una newline
o un salto de línea.