O vim possui o modo "eol" (para final de linha) para dizer o que fazer se a última linha do arquivo não possuir um caractere de nova linha . Você pode ver todas as configurações de modo no vim (ou qualquer programa como o vi),
:set all
POSIX vi não tem um recurso para isso: os arquivos são ou comprimento zero, ou ter uma nova linha final. Isso ocorre porque o POSIX vi lida apenas com arquivos de texto, que por definição são linhas que terminam com novas linhas. Em uma verificação rápida, nvi e elvis não têm modos para isso. No meu comentário, eu havia esquecido um detalhe do vim: ao contrário do vil, um ": set list" não mostra prontamente a nova linha ausente. Aqui está o que eu vejo no vim:
ssss$
test$
~
~
enquanto no vil:
ssss^J
test
~
~
Para qualquer editor, você pode ler o arquivo, alterar o modo , por exemplo,
:set noeol
e escreva o arquivo para obter uma nova linha no arquivo atualizado. Em vez de mostrá-lo diretamente, você pode modificar a linha de status do vim para mostrar essas informações. Por padrão, ele não parece fazer isso, mas alguns empacotadores personalizaram isso, por exemplo,
"foo" [noeol] 2L, 9C 1,1 All
Um dos comentários sugere o uso do "?" modificador do set
comando, por exemplo,
:set eol?
o que pode mostrar algo como isto:
noendofline 2,1 All
mas no modo de inserção, que é substituído por
-- INSERT -- 2,1 All
portanto, a linha de status parece o lugar certo para manter essas informações.
Os recursos já existem há algum tempo:
O eol
recurso apareceu pela primeira vez no vim 2.4 (julho de 1994), de acordo com um comentário em seu código-fonte.
vile's newline
mode apareceu em julho de 1993 .
( nvi, elvis, vim e vile manipulam arquivos binários , além dos arquivos de texto do POSIX vi ).