De la pregunta ¿Cómo reemplazar un personaje para una nueva línea en Vim? . Debe usar \ r cuando reemplace el texto de una nueva línea, como este
:%s/%/\r/g
Pero al reemplazar el final de las líneas y las nuevas líneas para un personaje, puede hacerlo como:
:%s/\n/%/g
¿Qué sección del manual documenta estos comportamientos y cuál es el razonamiento detrás de ellos?
%
buscar y reemplazar?:s
solo aplicará la sustitución a la línea actual.:%s
hace que aborde todo el archivo. Más .Respuestas:
De vim docs en patrones :
fuente
De http://vim.wikia.com/wiki/Search_and_replace :
fuente
:h :s%
, especialmente el último párrafo. (vía:h :s
)Otro aspecto de esto es que
\0
, que tradicionalmente es NULL, ses//\0/
entiende como "todo el patrón coincidente". (Que, por cierto, es redundante y más largo que&
).\0
decirNULL
, entonces usas\n
\n
para decir\n
, así que usas\r
.\r
significar\r
, pero no sé quién querría agregar ese personaje a propósito.—☈
fuente
\n
tiene diferentes significados en los patrones de búsqueda y reemplazo. Fantástica respuesta.:help NL-used-for-Nul
fuente
En primer lugar, abra
:h :s
para ver la sección "4.2 Sustituto" de la documentación sobre "Cambio". Esto es lo que acepta el comando:Observe la descripción sobre
pattern
ystring
Entonces, ahora sabe que el patrón de búsqueda y los patrones de reemplazo siguen reglas diferentes. Si sigue el enlace a
|pattern|
, lo lleva a la sección que explica todos los patrones de expresiones regulares utilizados en Vim.Mientras tanto, lo
|sub-replace-special|
lleva a la subsección de "4.2 Sustituto", que contiene los patrones para la sustitución, entre los cuales se encuentra el\r
salto de línea / división.(El acceso directo a esta parte del manual es
:h :s%
)fuente