Jeśli otworzę Vima i itest<Esc>:wq
piszę, to otrzymam plik, który nie ma w Vimie nowych linii, ale wydaje się, że zawiera nowy wiersz w kodzie:
$ vim -u NONE test.txt
$ cat test.txt | hd
00000000 74 65 73 74 0a |test.|
00000005
Jeśli otworzę Vima i napiszę, itest<Return><Esc>:wq
to otrzymam plik, który ma jedną nową linię w Vimie, ale dwie nowe linie w kodzie:
$ rm test.txt
$ vim -u NONE test.txt
$ cat test.txt | hd
00000000 74 65 73 74 0a 0a |test..|
00000006
Zauważ, że otwieram Vima za pomocą, -u NONE
więc nie jest używana konfiguracja lokalna. Zauważ też, że może to być związane z moim poprzednim pytaniem .
To są informacje o moim systemie:
$ uname -a
Linux awsAlpha 3.2.0-60-virtual #91-Ubuntu SMP Wed Feb 19 04:13:28 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 4 2012 04:25:35)
Included patches: 1-429
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Mogę również potwierdzić dokładnie to samo zachowanie w tym systemie:
$ uname -a
Linux bruno 3.5.0-48-generic #72-Ubuntu SMP Mon Mar 10 23:18:29 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 26 2012 16:45:33)
Included patches: 1-547
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Dlaczego Vim dodaje nową linię? Czy to konwencja?
Oto wyjaśnienie dotyczące hd
polecenia zainstalowanego na serwerze Ubuntu Server:
$ man hd | head -4
HEXDUMP(1) BSD General Commands Manual HEXDUMP(1)
NAME
hexdump, hd — ASCII, decimal, hexadecimal, octal dump