Informação básica
O Vim não mostra a nova linha mais recente no buffer, mas na verdade o vim sempre coloca o EOL no final do arquivo quando você o escreve, porque é padrão para arquivos de texto nos sistemas Unix. Você pode encontrar mais informações sobre isso aqui . Em resumo, você não precisa se preocupar com a ausência de novas linhas no final do arquivo no vim.
Experiência 1
Você pode fazer este pequeno experimento para verificar esse comportamento. No terminal, execute:
$vim test_test
digite, por exemplo, apenas caractere 1
e salve o arquivo :w.
Você tem apenas um caractere no arquivo, certo? Na verdade não :) Agora você tem em seu arquivo 1
e LF
caracteres. Vamos verificar, com o utilitário hexdump:
$hexdump test_test
resultado:
0000000 31 0a
0000002
31
é código ASCII para caractere 1
e 0a
é código ASCII para LF
caractere não imprimível que, para o UNIX, como você já deve saber o código para final de linha.
Experiência 2
Mas e se abrirmos o arquivo que não possui eol
símbolo no final do arquivo. Vamos verificar também. Vamos criar um arquivo sem eol no final, por exemplo:
$echo -n "1" > test_without_eol
e então, novamente, vamos olhar para dentro com hexdump
$hexdup test_without_eol
a saída será:
000000 31
0000001
Portanto, não há eol
caracteres aqui. Vamos abrir este arquivo no vim:
$vim test_without_eol
Na parte inferior do editor, você verá:
"test_without_eol" [noeol] 1L, 1C
E se você salvar esse arquivo, o eol
caractere será colocado automaticamente.
O que podemos fazer sobre isso?
Se você realmente precisa ver o final do arquivo. Tente usar este comando:
:set listchars=eol:$
mostrará todos os eol
caracteres como $
sinal.