Tengo un archivo de texto que se ve así:
A.
text
text
text
A.
more text
more text
A.
more text
Quiero unir todas las líneas entre los "marcadores" A.
para que se vea así:
A.texttexttext
A.more textmore text
A.more text
¿Cómo puedo hacer esto en Vim?
:help \@!
en Vim para obtener más información sobre esa parte. De lo contrario, es sencillo, con suerte, con mi explicación. Un problema con su enfoque es que si "A.
" aparece en el texto, aunque no como una línea de marcador aislada, se dividirá como si fuera originalmente un marcador. En la práctica, podría no ser un problema (no sé cómo se ve su archivo "real"), pero genéricamente puede causar un comportamiento no deseado si uno no es consciente de esto.:%s///
sintaxis: es una sintaxis de "buscar y reemplazar" en Vim.:
inicia el comando,%
especifica todo el búfer como el rango,s
inicia una sustitución./
es el delimitador de patrón (se puede usar cualquier otro carácter, pero/
es "estándar"). El primero/
inicia el patrón de búsqueda, el segundo el patrón de reemplazo y el tercero lo finaliza. Los modificadores finales están disponibles para especificar la insensibilidad a mayúsculas y minúsculas, etc.\1
representa el grupo capturado en el patrón de búsqueda.:%s/foo/bar/
reemplazafoo
conbar
en el archivo.:%s/^A\.//
. El método en la respuesta no captura los^A\.
patrones en sí (más bien su ausencia), por lo que no puede modificar esas cadenas de una manera obvia.Esto también funciona (cuando la primera línea comienza con
A.
)fuente