¿Alguien sabe de un editor de texto en Linux que me permita ver saltos de línea y retornos de carro? ¿Vim admite esta función?
vim
newline
text-editor
line-breaks
carriage-return
prueba de uso
fuente
fuente
Respuestas:
:set list
en Vim mostrará espacios en blanco. El final de las líneas se muestra como "$
" y los retornos de carro generalmente se muestran como "^M
".fuente
:set list
NO mostrará^M
caracteres (CR). Proporcionar la-b
opción de vi / vim funcionará. O, una vez que se carga vim, escriba::e ++ff=unix
:set nolist
Para no estar de acuerdo con la respuesta oficial:
:set list
se no mostrar caracteres ^ M (CRS). Proporcionar la opción -b a vi / vim funcionará. O, una vez que se carga vim, escriba:e ++ff=unix
.fuente
:help edit
muestrae[dit]! [++opt] [+cmd]
. Y:help ++e
dice que el argumento [++ opt] puede usarse para forzar el valor de 'fileformat' [..] .:set list
muestra nueva línea ($
),:e ++ff=unix
muestra CR (^M
); si quieres ver ambos,:set list
entonces:e ++ff=unix
:set ff=unix
le dice a Vim que cambie las terminaciones de línea al estilo unix (como parte de la configuración del formato de archivo), de modo que los caracteres ^ M ya no estén allí (y, por lo tanto, no se muestren).:e ++ff=unix
le dice que establezca forzosamente el formato de archivo como siunix
realmente no cambiara el contenido. Entonces vim lo lee como un archivo Unix, ve los caracteres CR como extra y los muestra como ^ M.vim
por alguna razón ... No me refiero a ninguna-b
opción, ni:e ++ff=unix
cuandoVI muestra nuevas líneas (caracteres LF, código
x0A
) mostrando el texto posterior en la línea siguiente.Use el
-b
interruptor para el modo binario. Por ejemplovi -b filename
ovim -b filename --
.Luego mostrará los caracteres CR (
x0D
), que normalmente no se usan en archivos de estilo Unix, como los caracteres^M
.fuente
Unix
entorno. Pero me gustaría que me advirtieran sobre las terminaciones de línea de tipo Windows si hay alguna en el archivo. ¿Se mostrarávi -b filename
o:set binary
solo se mostrará^M
si es un archivo de tipo Windows y no hay otras terminaciones de línea?Solo para aclarar por qué
:set list
no mostrará los CR como^M
sine ++ff=unix
y por qué:set list
no tiene nada que ver con^M
los de.Internamente, cuando Vim lee un archivo en su búfer, reemplaza todos los caracteres de final de línea con su propia representación (llamémosla
$
). Para determinar qué caracteres deben eliminarse, primero detecta en qué formato se guardan las terminaciones de línea en un archivo. Si solo hay CRLF'\r\n'
o solo CR'\r'
o solo'\n'
caracteres de final de línea LF , entonces'fileformat'
se establece endos
,mac
yunix
respectivamente.Cuando
list
se establece la opción, Vim muestra el$
carácter cuando se produce el salto de línea, sin importar quéfileformat
opción se haya detectado. Utiliza su propia representación interna de saltos de línea y eso es lo que muestra.Ahora, cuando escribe búfer en el disco, Vim inserta caracteres de final de línea de acuerdo con las
fileformat
opciones que se han detectado, esencialmente convirtiendo todos los internos$
con caracteres apropiados. Sifileformat
sucedió,unix
entonces simplemente escribirá\n
en lugar de su salto de línea interno.El truco es obligar a Vim a leer un
dos
archivo codificado comounix
uno. El efecto neto es que va a quitar todo\n
's dejando\r
' s sin tocar y mostrarlos como^M
's en el búfer. La configuración:set list
también mostrará finales de línea internos como$
. Después de todo, ves^M$
en lugar dedos
saltos de línea codificados.También
:set list
tenga en cuenta que no tiene nada que ver con mostrar^M
's. Puede verificarlo usted mismo (asegúrese de haber deshabilitadolist
primero la opción) insertando un solo CR usandoCTRL-V
seguidoEnter
en modo de inserción. Después de escribir el búfer en el disco y volver a abrirlo, verá a^M
pesar de que lalist
opción esté configurada en 0.Puede encontrar más información sobre los formatos de archivo en http://vim.wikia.com/wiki/File_format o escribiendo
:help 'fileformat'
Vim.fuente
Prueba el siguiente comando.
: establecer binario
En VIM, esto debería hacer lo mismo que usar la opción de línea de comando "-b". Si coloca esto en su archivo de inicio (es decir .vimrc), siempre estará en su lugar.
En muchos sistemas * nix, hay un comando "dos2unix" o "unix2dos" que puede procesar el archivo y corregir cualquier problema sospechoso de finalización de línea. Si no hay ningún problema con los finales de línea, los archivos no se cambiarán.
fuente
set binary
no es lo mismo quevim -b filename.py
. ¿Alguna idea de por qué? Verifiqué elhelp
y parece que lo que dices es generalmente correcto. ¿Cómo puedo entender por qué esto es así?:e ++ff=unix
muestra^M
correctamente y no muestra cuando usounix
archivos de tipo ... Así que supongo que el problema está resuelto por ahora ...Le sugiero que edite su archivo .vimrc, para ejecutar una lista de comandos. Edite su archivo .vimrc, así:
Cuando ejecutas vim, los comandos en .vimrc se ejecutan y puedes ver este ejemplo:
fuente
usando
cat
y-A
puede ver nuevas líneas como$
, pestañas como^I
cat -A myfile
fuente
Puede ver las líneas de corte con el editor gedit .
Primero, si no tienes instalado:
Ahora, instale complementos gedit :
y seleccione el complemento Dibujar espacios , ingrese en Preferencias y elija Dibujar nuevas líneas
Usando VSCode puede instalar la extensión de terminaciones de línea .
Sublime Text 3 tiene un complemento llamado RawLineEdit que mostrará los finales de línea y permitirá la inserción de un tipo de final de línea arbitrario
shift + ctrl + p
y comenzar a escribir el nombre del complemento, y alternar para mostrar el final de línea.fuente