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 1
i zapisz plik :wq.
W pliku jest tylko jeden znak, prawda? Właściwie nie :) Masz teraz w swoim pliku 1
i LF
postaciach. Sprawdźmy to za pomocą narzędzia hexdump:
$ hexdump test_test
0000000 31 0a
0000002
31
jest kodem ASCII dla znaku 1
i 0a
jest kodem ASCII dla niedrukowalnego LF
znaku, 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 eol
symbolu 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 eol
tutaj ż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 eol
znak 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 eol
znaki jako $
znak.