Ich bin ein wenig verwirrt über einige Standardwerte in Vim. Insbesondere wird dafür gq{motion}
gesagt, dass
[...]
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).
Ich dachte, dass es sinnvoller wäre, wenn 80
stattdessen die maximale Breite auf gesetzt worden wäre .
Kann mich jemand aufklären? Ich vermisse etwas.
formatting
Atcold
quelle
quelle
80
ist ein ziemlich willkürlicher "Standard", also ... warum nicht79
? Das Umbrechen von Zeilen79
in einem80
spaltenbreiten Terminal lässt jetzt etwas mehr Platz nach rechts und kann die Lesbarkeit verbessern. github.com/vim/vim/blob/…80
spaltenweiten Terminal die letzte Spalte für das Umbruchssymbol reserviert? Wenn Sie jedoch Zeilennummern verwenden, nehmen diese definitiv mehr als nur eine Spalte ein. Also bin ich immer noch verwirrt. Ist der von Ihnen verknüpfte Code außerdem79
der Maximalwert, den er verwenden kann? Vielleicht habe ich nicht verstanden, was ich gelesen habe.textwidth
und fertig sein.tw=79
Anstatttw=80
eine Zeile mit einer Länge von 80 Zeichen auf einem 80-Spalten-Terminal anzuzeigen, wird eine zusätzliche neue Zeile ausgegeben.Antworten:
Ich habe keine Beweise dafür, dass 79 ursprünglich ausgewählt wurde, aber ein guter Grund , diesen Wert beizubehalten, ist, dass die Anzeige des Listenzeichens einen 80-Zeichen- Wert verursacht, wenn Sie
'list'
einen Wert füreol
in'listchars'
verwenden. Zeilenlänge, um die nächste Zeile in einem Terminal mit einer Breite von 80 Zeichen umzubrechen.Wenn die Zeile nur 79 Zeichen lang ist, ist die 80. Spalte für das Zeilenende frei
listchar
.quelle
'list'
? Was soll es tun?:help 'list'
oder versuchen Sie einfach,:set list
es in Aktion zu sehen.:set list
tut nicht viel Ich wette, ich habe das nichteol
in derlistchars
. Ich bin mir nicht sicher, ob dies der Grund für die79
Charaktere ist. Ich glaube, @ sato-katsura hat die beste Antwort im Kommentar.eol
ist in'listchars'
der Standardeinstellung, aber es ist natürlich möglich, dass etwas in Ihrer Konfiguration es entfernt hat. Ich erkläre in meiner Antwort ausdrücklich, dass ich keinen Grund zu der Annahme habe, dass dies der historische Grund war, warum 79 ursprünglich gewählt wurde. Ich gebe nur einen weiteren Grund an, warum es weiterhin ein gutes Preis-Leistungs-Verhältnis ist.Es ist wichtig zu erkennen , dass diese „default“ gilt nur für die
gq
undgw
Befehle und Auto-Format wie in diesem Abschnitt beschrieben. Die Standardeinstellungtextwidth
ist 0. Ferner:right
und:center
standardmäßig auf 80, nicht 79.Was , warum 79 gewählt wurde, kann sie nicht eine direkte Halt über von vi sein , da
gq
,gw
und Auto-Format gibt es nicht in vi. Dies ist größtenteils eine Spekulation, aber ich glaube, die Standardeinstellung für das automatische Format wurde gewählt, um die Konsistenz mit dem vorhandenen automatischen Wrapping von vi zu gewährleisten. Dass dies zutrifftgq
undgw
ein Nebeneffekt ist; man könnte erwarten, dass 80 anders gewählt worden wären.In vi (und in vim if
textwidth=0
) beginnt der automatische Zeilenumbruch mit der Fensterbreite minuswrapmargin
. In diesemwrapmargin=0
Fall findet jedoch kein automatisches Wrapping statt. Dies bedeutet, dass bei Verwendung eines ADM-3A mit einer Beschränkung von 80 Zeichen mitwrapmargin=1
die maximale Breite mit automatischem Zeilenumbruch 79 ist. Ein Vorteil dieses Verhaltens ist, dass der Cursor einen Platz zum Leben hat, während er darauf wartet, was zu sehen Das nächste Zeichen wird sein, bevor entschieden wird, wo es umbrochen werden soll. Natürlich könnten vi und vim den Cursor in die nächste Zeile setzen (wie bei der Eingabe eines sehr langen Wortes zu beobachten), aber eine zusätzliche Spalte zu lassen ist ein bisschen netter.quelle