visualizar ver saltos salto retorno reemplazar quitar por notas modo linea insertar extendida carro busqueda bloc agregar vim

vim - retorno - ver saltos de linea notepad++



SustituciĆ³n del retorno de carro ^ M con Entrar (5)

En la sesión de vim prueba:

:%s/^M//g

Donde ^M se logra ctrl+V+M juntos.

Sé cómo eliminar ^M en mis archivos ( %s/^M//g ), pero esta es solo una línea que me gustaría reemplazar ^M con enter ... ¿cuál es el carácter enter en VIM (para usar en modo de línea de comunicación).


Para reemplazar el carácter de retorno de carro (que es <Cm> ) con el carácter de avance de línea (que es el carácter de salto de línea de Unix), debe ejecutar un comando un poco extraño:

%s//r//r/g

Parece que no está haciendo nada, pero en expresiones regulares y cadenas de doble comillas, los retornos de carro se representan usando /r líneas de alimentación con /n , mientras que en la parte de reemplazo de: s comando y función de sustitución () significan lo contrario .

Tenga en cuenta que en la terminal Enter produce <Cm> , por lo que su solicitud inicial no es válida.


Puede reemplazar un caracter usando r<CR> en modo normal.
O puede ingresar un "retorno" en el modo de línea de comando escribiendo <Cv><CR> .


Similar a @ZyX y @anubhava, pero asumiendo que simplemente estás tratando de eliminar los molestos retornos de carro de un archivo de Windows, lo siguiente será suficiente:

:%s//r//g


:%s//r//g solo funciona cuando:

  • set ff=unix , que cuando se hace, convierte automáticamente todos los CRLF a LF

  • set ff=dos y CR es un personaje deshonesto que no está precedido por LF, por ejemplo, insertado con CV CM .

    CR en LF CR pares no serán encontrados.

Por lo tanto, si todo lo que desea es convertir cada LF CR a LF , debe usar:

:set ff=unix :w