2010-10-05 59 views
105

¿Alguien sabe de un editor de texto en Linux que me permite ver los saltos de línea y los retornos de carro? ¿Vim admite esta función?Ver saltos de línea y retornos de carro en el editor

+0

NOTA: algunas veces, la nueva línea ($) y el retorno del carro (^ M) están ocultos en MUCHOS esquemas de color, y también al usar masilla en ssh. –

Respuesta

91

:set list en Vim mostrará el espacio en blanco. El final de las líneas se muestra como '$' y los retornos de carro generalmente se muestran como '^M'.

+1

La misma pregunta aquí: http://superuser.com/questions/97692/vim-show-line-feeds-carriage-return –

+167

Incorrecto, ': set list' NO mostrará caracteres'^M' (CR). El suministro de la opción '-b' a vi/vim funcionará. O bien, una vez que se carga vim, escriba: ': e ++ ff = unix' – CaptSaltyJack

+4

@CaptSaltyJack Esa debe ser su propia respuesta ..... –

68

VI muestra líneas nuevas (carácter LF, código x0A) mostrando el texto siguiente en la siguiente línea.

Utilice el interruptor -b para el modo binario. Ej. vi -b filename o vim -b filename --.

Mostrará los caracteres CR (x0D), que normalmente no se utilizan en los archivos de estilo Unix, como los caracteres ^M.

146

en desacuerdo con la respuesta oficial:

:set list voluntad no muestran caracteres^M (CRS). El suministro de la opción -b a vi/vim funcionará. O bien, una vez que se carga vim, escriba :e ++ff=unix.

+1

¿Por qué '' set ff = unix' no funciona, pero ': e ++ ff = unix' no? –

+2

Es la sintaxis. ': help edit' muestra' e [dit]! [++ opt] [+ cmd] '. Y ': help ++ e' dice _El argumento [++ opt] se puede usar para forzar el valor de 'fileformat' [..] _. – dennis

+11

solo para aclarar, ': set list' muestra newline (' $ '),': e ++ ff = unix' muestra CR ('^ M'); si quieres ver ambos, ': set list' luego': e ++ ff = unix' –

9

Pruebe el siguiente comando.

: juego binario

En VIM, esto debería hacer lo mismo que el uso de la opción de línea de comandos "-b". Si coloca esto en su archivo de inicio (es decir, .vimrc), siempre estará disponible para usted.

En muchos sistemas * nix, hay un comando "dos2unix" o "unix2dos" que puede procesar el archivo y corregir cualquier posible problema de finalización de línea. Si no hay problema con los finales de línea, los archivos no se modificarán.

1

Le sugiero que edite su archivo .vimrc, para ejecutar una lista de comandos. editar el archivo .vimrc, así:

cat >> ~/.vimrc <<EOF 
set ffs=unix 
set encoding=utf-8 
set fileencoding=utf-8 
set listchars=eol:¶ 
set list 
EOF 

Cuando se está ejecutando vim, los comandos en .vimrc se ejecutan, y se puede ver este ejemplo:

My line with CRLF eol here ^M¶ 
8

Solo para aclarar por qué :set list no mostrará CR como ^M sin e ++ff=unix y por qué :set list no tiene nada que ver con ^M 's.

internamente cuando Vim lee un archivo en su memoria intermedia, se reemplazan todos los caracteres de fin de línea con su propia representación (vamos a llamarlo $ 's). Para determinar qué caracteres se deben eliminar, primero se detecta en qué formato se almacenan las terminaciones de línea en un archivo. Si solo hay CRLF '\r\n' o solo CR '\r' o solo LF '\n' caracteres de final de línea, el 'fileformat' está configurado en dos, mac y unix respectivamente.

Cuando se establece la opción list, Vim muestra el carácter $ cuando se produjo el salto de línea independientemente de la opción fileformat que se haya detectado. Utiliza su propia representación interna de saltos de línea y eso es lo que muestra.

Ahora, cuando se escribe búfer en el disco, Vim inserta caracteres de fin de línea de acuerdo a lo fileformat opciones beed ha detectado, essentialy convertir todos esos internos $ 's con los caracteres adecuados. Si el fileformat pasó a ser unix, simplemente escribirá \n en lugar de su línea de corte interna.

El truco es forzar a Vim a leer un archivo codificado dos como unix uno. El efecto neto es que eliminará todos \n dejando \r intactos y los mostrará como ^M en su memoria intermedia. El ajuste :set list mostrará adicionalmente finales de línea internos como $. Después de todo, verá ^M$ en lugar de dos saltos de línea codificados.

También tenga en cuenta que :set list no tiene nada que ver con mostrar ^M 's. Puede verificarlo usted mismo (asegúrese de haber deshabilitado primero la opción list) insertando CR solo usando CTRL-V seguido de Enter en modo de inserción. Después de escribir búfer de disco y abrirlo de nuevo se le ses ^M pesar list opción que se establece en 0.

Puede encontrar más información sobre los formatos de archivo de http://vim.wikia.com/wiki/File_format o escribiendo :help 'fileformat' en Vim.

Cuestiones relacionadas