Alguém conhece um editor de texto no Linux que me permita ver quebras de linha e retornos de carro? O Vim suporta esse recurso?
vim
newline
text-editor
line-breaks
carriage-return
usertest
fonte
fonte
Respostas:
:set list
no Vim mostrará espaço em branco. O fim das linhas é exibido como '$
' e os retornos de carro geralmente são exibidos como '^M
'.fonte
:set list
NÃO mostrará^M
caracteres (CRs). Fornecer a-b
opção para vi / vim funcionará. Ou, uma vez que o vim é carregado, tipo::e ++ff=unix
:set nolist
Para discordar da resposta oficial:
:set list
irá não mostrar ^ caracteres M (CRS). Fornecer a opção -b ao vi / vim funcionará. Ou, uma vez carregado o vim, digite:e ++ff=unix
.fonte
:help edit
mostrae[dit]! [++opt] [+cmd]
. E:help ++e
diz que o argumento [++ opt] pode ser usado para forçar o valor de 'fileformat' [..] .:set list
mostra nova linha ($
),:e ++ff=unix
mostra CR (^M
); se você quiser ver os dois,:set list
então:e ++ff=unix
:set ff=unix
diz ao Vim para alterar as terminações de linha para o estilo unix (como parte da configuração do formato do arquivo), para que os caracteres ^ M não estejam mais lá (e não sejam exibidos).:e ++ff=unix
diz para forçar a definição do formato do arquivo comounix
sem realmente alterar o conteúdo. Então o vim o lê como um arquivo Unix, vê os caracteres CR como extras e os exibe como ^ M.vim
por alguma razão ... quero dizer nem-b
opção, nem:e ++ff=unix
quando dentro :(VI mostra novas linhas (caracteres LF, código
x0A
) mostrando o texto subsequente na próxima linha.Use o
-b
interruptor para o modo binário. Por exemplo,vi -b filename
ouvim -b filename --
.Ele mostrará caracteres CR (
x0D
), que normalmente não são usados em arquivos de estilo Unix, como os caracteres^M
.fonte
Unix
ambiente. Mas gostaria de ser avisado sobre as terminações de linha do tipo Windows, se houver alguma no arquivo. Irávi -b filename
ou:set binary
apenas mostrará^M
se é um arquivo do tipo Windows e não há outras terminações de linha?Apenas para esclarecer por
:set list
que não mostrará CR's^M
seme ++ff=unix
e por:set list
que não tem nada a ver com^M
's.Internamente, quando o Vim lê um arquivo em seu buffer, ele substitui todos os caracteres de final de linha por sua própria representação (vamos chamá-lo
$
). Para determinar quais caracteres devem ser removidos, ele primeiro detecta em que formato as terminações de linha são armazenadas em um arquivo. Se houver apenas CRLF'\r\n'
ou única CR'\r'
ou única LF'\n'
caracteres de fim de linha, então o'fileformat'
é configurado parados
,mac
eunix
respectivamente.Quando a
list
opção está definida, o Vim exibe$
caracteres quando a quebra de linha ocorreu, independentemente dafileformat
opção detectada. Ele usa sua própria representação interna de quebras de linha e é isso que exibe.Agora, quando você grava buffer no disco, o Vim insere caracteres de final de linha de acordo com as
fileformat
opções detectadas, convertendo essencialmente todos os internos$
com caracteres apropriados. Sefileformat
aconteceuunix
, ele simplesmente escreverá\n
no lugar de sua quebra de linha interna.O truque é forçar o Vim a ler um
dos
arquivo codificado comounix
um. O efeito líquido é que ele remove todas\n
as partes\r
intactas e as exibe como^M
estão no seu buffer. A configuração:set list
também mostrará finais de linha internos como$
. Afinal, você vê^M$
no lugar dedos
quebras de linha codificadas.Observe também que
:set list
nada tem a ver com mostrar^M
. Você pode verificá-lo (certifique-se de ter desabilitado alist
opção primeiro) inserindo CR único usandoCTRL-V
seguido deEnter
no modo de inserção. Depois de gravar o buffer no disco e abri-lo novamente, você verá^M
apesar dalist
opção estar definida como 0.Você pode encontrar mais informações sobre os formatos de arquivo em http://vim.wikia.com/wiki/File_format ou digitando
:help 'fileformat'
no Vim.fonte
Tente o seguinte comando.
: definir binário
No VIM, isso deve fazer o mesmo que usar a opção de linha de comando "-b". Se você colocar isso no arquivo de inicialização (por exemplo, .vimrc), ele sempre estará disponível para você.
Em muitos sistemas * nix, existe um comando "dos2unix" ou "unix2dos" que pode processar o arquivo e corrigir qualquer problema suspeito de final de linha. Se não houver nenhum problema com as terminações de linha, os arquivos não serão alterados.
fonte
set binary
não é o mesmo quevim -b filename.py
. Alguma idéia do porquê? Eu verifiqueihelp
e parece que o que você diz é geralmente correto. Como faço para descobrir por que isso acontece?:e ++ff=unix
mostra o^M
corretamente e não mostrá-la quando eu usounix
arquivos do tipo .. Então eu acho que o problema está resolvido por agora ...Sugiro que você edite seu arquivo .vimrc, para executar uma lista de comandos. Edite seu arquivo .vimrc, assim:
Quando você está executando o vim, os comandos em .vimrc são executados e você pode ver este exemplo:
fonte
usando
cat
e-A
você pode ver novas linhas como$
, guias como^I
cat -A myfile
fonte
Você pode ver as linhas de quebra usando o editor gedit .
Primeiro, se você não tiver instalado:
Agora, instale os plugins do gedit :
e selecione o plug-in Draw Spaces , entre em Preferences e escolha Draw new lines
Usando o VSCode, você pode instalar a extensão de terminações de linha .
O Sublime Text 3 possui um plug-in chamado RawLineEdit que exibirá finais de linha e permitirá a inserção de tipos arbitrários de final de linha
shift + ctrl + p
e comece a digitar o nome do plug-in e alterne para mostrar o final da linha.fonte