¿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?
¿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?
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
".
: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
.
:help edit
muestra e[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 si unix
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
cuando
VI 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 ejemplo vi -b filename
o vim -b filename --
.
Luego mostrará los caracteres CR ( x0D
), que normalmente no se usan en archivos de estilo Unix, como los caracteres ^M
.
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
sin e ++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 en dos
, mac
y unix
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. Si fileformat
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 como unix
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 de dos
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 deshabilitado list
primero la opción) insertando un solo CR usando CTRL-V
seguido Enter
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 la list
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.
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.
set binary
no es lo mismo que vim -b filename.py
. ¿Alguna idea de por qué? Verifiqué el help
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 uso unix
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í:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Cuando ejecutas vim, los comandos en .vimrc se ejecutan y puedes ver este ejemplo:
My line with CRLF eol here ^M¶
usando cat
y -A
puede ver nuevas líneas como $
, pestañas como^I
cat -A myfile
Puede ver las líneas de corte con el editor gedit .
Primero, si no tienes instalado:
sudo apt-get install gedit
Ahora, instale complementos gedit :
sudo apt-get install gedit-plugins
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.