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.
vim
, por padrão, normalmente não vejo^M
, mas às vezes existe um no final do arquivo.Respostas:
Tente
:set ffs=unix
ao 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.
fonte
:set list
mostra$
no final de todas as linhas (formato Unix e DOS), por isso não ajuda a distinguir entre as duas.Not an editor command: ffs=unix
- mas me colocou no caminho certo. A execução:set ffs=unix
com o arquivo aberto no vi não funcionou - nenhum erro, mas nada aconteceu. Coloqueiset ffs=unix
no meu arquivo .vimrc e funcionou.ffs
exatamente do jeito que está. Mas veja a resposta de @wisbucky.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
CR
como^M
Para tornar essa configuração permanente, adicione a
~/.vimrc
:set ffs=unix
Observe que a configuração .vimrc é
ffs
, nãoff
.fonte
:e ++ff=unix
Devo ser , acredito.:e ++ff=unix
(por garfo0) 54321
fonte