Podstawowa informacja
Vim nie wyświetla najnowszej nowej linii w buforze, ale w rzeczywistości vim zawsze umieszcza EOL na końcu pliku, gdy go piszesz, ponieważ jest standardem dla plików tekstowych w systemach uniksowych. Więcej informacji na ten temat można znaleźć tutaj . Krótko mówiąc, nie musisz się martwić brakiem nowych wierszy na końcu pliku w vimie.
Eksperyment 1
Możesz wykonać mały eksperyment, aby sprawdzić to zachowanie. W terminalu wykonaj:
$ vim test_test
Wpisz znak 1i zapisz plik :wq.
W pliku jest tylko jeden znak, prawda? Właściwie nie :) Masz teraz w swoim pliku 1i LFpostaciach. Sprawdźmy to za pomocą narzędzia hexdump:
$ hexdump test_test
0000000 31 0a
0000002
31jest kodem ASCII dla znaku 1i 0ajest kodem ASCII dla niedrukowalnego LFznaku, który dla systemu UNIX, jak być może już znasz, kod końca linii.
Eksperyment 2
Ale co, jeśli otworzymy plik, który nie ma eolsymbolu na końcu pliku. Sprawdźmy to też. Utwórzmy na końcu plik bez eol, na przykład tak:
$ echo -n "1" > test_without_eol
Następnie spójrzmy do środka z zrzutem heksadecymalnym:
$ hexdump test_without_eol
000000 31
0000001
Więc nie ma eoltutaj żadnych znaków. Otwórzmy ten plik w vimie:
$ vim test_without_eol
Na dole edytora zobaczysz:
"test_without_eol" [noeol] 1L, 1C
A jeśli zapiszesz ten eolznak postaci zostanie wstawiony automatycznie.
Co możemy z tym zrobić?
Jeśli naprawdę potrzebujesz zobaczyć koniec pliku. Spróbuj użyć tego polecenia:
:set listchars=eol:$
pokaże wszystkie eolznaki jako $znak.