Jestem trochę zdziwiony pewnymi wartościami domyślnymi w Vimie. W szczególności gq{motion}
mówi się, że
[...]
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).
Pomyślałem, że powinien mieć większy sens, gdyby 80
zamiast tego ustawił maksymalną szerokość na .
Czy ktoś może mnie o tym oświecić? Chyba coś mi umknęło.
formatting
Atcold
źródło
źródło
80
jest dość arbitralnym „standardem” na początek, więc… dlaczego nie79
? Teraz zawijanie linii79
w80
terminalu o szerokości kolumn daje nieco więcej miejsca po prawej stronie i może poprawić czytelność. github.com/vim/vim/blob/…80
terminalu obejmującym całą kolumnę ostatnia kolumna była zarezerwowana na symbol zawijania? Jeśli jednak masz włączone numery linii, na pewno zajmą więcej niż tylko jedną kolumnę. Więc nadal jestem zaskoczony. Co więcej, z kodu, który podłączyłeś,79
czy można użyć maksymalnej wartości? Może nie zrozumiałem, co czytam.textwidth
i gotowe.tw=79
zamiasttw=80
wyświetlać wiersz o długości 80 znaków na 80 kolumnach terminal wypisuje dodatkową nową linię.Odpowiedzi:
Nie mam żadnych dowodów, że właśnie dlatego pierwotnie wybrano 79, ale dobrym powodem, aby pozostawić tę wartość na tej wartości, jest to, że jeśli użyjesz
'list'
z wartością zawartąeol
w,'listchars'
wówczas wyświetlanie listy list spowoduje 80 znaków długość linii do zawinięcia w następną linię w terminalu o szerokości 80 znaków.Jeśli linia ma tylko 79 znaków, wówczas 80. kolumna jest wolna dla końca linii
listchar
.źródło
'list'
? Co to ma zrobić?:help 'list'
lub po prostu spróbuj uruchomić,:set list
aby zobaczyć, jak działa.:set list
nie robi wiele. Założę się, że nie maszeol
wlistchars
. Nie jestem pewien, czy to jest powód79
postaci. Wierzę, że @ sato-katsura ma najlepszą odpowiedź w komentarzu.eol
jest'listchars'
domyślnie włączony, ale oczywiście jest możliwe, że coś w twojej konfiguracji go usunęło. W swojej odpowiedzi wyraźnie stwierdzam, że nie mam powodu, aby sądzić, że był to historyczny powód, dla którego 79 zostało pierwotnie wybrane. Podaję tylko kolejny powód, dla którego warto nadal korzystać z tej funkcji.Ważne jest, aby zdać sobie sprawę, że to „default” odnosi się tylko do
gq
igw
poleceń oraz auto-formatu, jak opisano w tej sekcji. Wartość domyślnatextwidth
to 0. Ponadto:right
i:center
domyślnie 80, a nie 79.Jak, dlaczego 79 został wybrany, to nie może być bezpośredni hold-over z VI ponieważ
gq
,gw
i auto-Format nie istnieją w VI. Jest to głównie spekulacja, ale uważam, że domyślną 79 dla automatycznego formatowania wybrano ze względu na spójność z istniejącym automatycznym zawijaniem vi. To dotyczygq
igw
jest efektem ubocznym; można by oczekiwać, że 80 zostałoby wybrane inaczej.W vi (i vim if
textwidth=0
) tekst rozpoczyna automatyczne zawijanie przy szerokości okna minuswrapmargin
. Jeśli jednakwrapmargin=0
nie nastąpi automatyczne owijanie. Oznacza to, że jeśli używasz ADM-3A z limitem 80 znaków, przywrapmargin=1
maksymalnej szerokości z automatycznym zawijaniem wynosi 79. Zaletą tego zachowania jest to, że istnieje miejsce, w którym kursor może żyć, czekając, aby zobaczyć, co następna postać będzie przed podjęciem decyzji, gdzie owinąć. Oczywiście vi i vim mogą umieścić kursor w następnym wierszu (jak zaobserwowano podczas wpisywania bardzo długiego słowa), ale pozostawienie dodatkowej kolumny jest nieco przyjemniejsze.źródło