command-line – ¿Cómo dividir una línea en varias líneas de manera eficiente?

Pregunta:

He estado recibiendo datos registrados en un archivo de texto que es solo una línea larga con cada valor separado por un espacio. ¿Existe un comando o un conjunto de comandos que dividirán una línea en varias líneas?

Respuesta:

Simplemente puede reemplazar cualquier espacio consecutivo en la línea con una nueva línea usando el comando :s/\s\+/\r/g . \s\+ significa uno o más caracteres de espacio en blanco, y \r es una nueva línea, consulte :help :substitute y :help regexp para más detalles. Si ejecuta el comando en una línea como:

foo bar baz

Usted obtiene:

foo
bar
baz

Si tiene hlsearch habilitado y no desea abarrotar su pantalla con espacios resaltados en todas partes, puede escribir una pequeña función como la siguiente para evitarlo:

function! SplitLineNicely()
    " Save previous value of last search register
    let saved_last_search_pattern = @/

    " :substitute replaces the content of the search register with the `\s\+` 
    " pattern highlighting all whitespaces in the file
    substitute /\s\+/\r/g

    " Restore previous search register
    let @/ = saved_last_search_pattern
endfunction

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım