Vi no Linux: mostre ^ M finais de linha para arquivos no formato DOS

10

No Solaris, se você abrir um arquivo no vi que possui terminações de linha do Windows, isso será exibido como ^ M no final de cada linha.

No Linux, o vi é mais inteligente e entende o formato de arquivo do Windows e não exibe ^ M.

Existe uma configuração para fazer o Linux vi se comportar da mesma forma que o Solaris a esse respeito?

Um problema comum para nós é copiar um script de shell de uma caixa de desenvolvimento (Windows) e esquecer de dos2unix e depois ficar confuso quando não funcionar corretamente. No Solaris, o problema é óbvio assim que você visualiza o arquivo, mas não no Linux.

Obrigado.

sss
fonte
No Linux, o vi é geralmente o vim de Bram Moolenaar , espero que o vi no Solaris seja o Bill Joy vi , original, autêntico, mas menos capaz.
RedGrittyBrick
No meu caso vim, por padrão, normalmente não vejo ^M, mas às vezes existe um no final do arquivo.
trysis

Respostas:

10

Tente :set ffs=unixao iniciar o vi (ou defina como padrão no vimrc), que deve exibir todos os caracteres CR como ^M.

vi adivinha automaticamente qual formato usar com base no fato de encontrar ou não linhas que terminam apenas em LF ou em ambos os CR / LF.

Garrett
fonte
2
@RedGrittyBrick - No meu sistema, :set listmostra $no final de todas as linhas (formato Unix e DOS), por isso não ajuda a distinguir entre as duas.
sss
@sss: Meu erro, vou excluir o comentário.
RedGrittyBrick
2
@ gman - esse comando não funcionou para mim exatamente - eu consegui Not an editor command: ffs=unix- mas me colocou no caminho certo. A execução :set ffs=unixcom o arquivo aberto no vi não funcionou - nenhum erro, mas nada aconteceu. Coloquei set ffs=unixno meu arquivo .vimrc e funcionou.
sss
Eu experimentei exatamente a mesma coisa que @sss
SSH Esta
Assim, corrompe a configuração do usuário cuidadosamente preparada. Eu provavelmente quero ffsexatamente do jeito que está. Mas veja a resposta de @wisbucky.
fork0
2

Para mostrar finais de linha dos para o arquivo atual:

:e +ff=unix

Isso força o formato do arquivo ao unix, que será renderizado CRcomo^M


Para tornar essa configuração permanente, adicione a ~/.vimrc:

set ffs=unix

Observe que a configuração .vimrc é ffs, não ff.

wisbucky
fonte
:e ++ff=unixDevo ser , acredito.
fork0
0

:e ++ff=unix

(por garfo0) 54321

Jan Kyu Peblik
fonte