Ich möchte die Soft-Wrap- Funktion ( :set wrap
) von Vim verwenden , um Code mit 80 Zeichen zu umbrechen, unabhängig von meiner tatsächlichen Fensterbreite.
Ich habe noch keinen Weg gefunden, dies zu tun - die gesamte weiche Verpackung scheint an die Breite des Fensters gebunden zu sein
textwidth
undwrapmargin
sind beide für das harte Umbrechen (sie fügen Zeilenumbrüche in die Datei ein)- Die vertikale Aufteilung in mehrere Fenster und die Verwendung
:vertical resize 80
(möglicherweise mit:set breakat=
, um Unterbrechungen für ein beliebiges Zeichen zuzulassen) für eine dieser Arbeiten (auch wenn dies etwas hackig ist), aber Unterbrechungen bei der Verwendung,:set number
da die Zeilennummern eine variable Anzahl von Spalten einnehmen (abhängig davon) auf die Dateilänge) und diese sind Teil der 80.
Gibt es eine Möglichkeit, dies in vim zu tun? Anderen Quellen zufolge sieht es nicht vielversprechend aus .
Im Moment ist meine Annäherung nur /^.\{80}\zs.\+
meine Standardsuche, damit sie zumindest hervorgehoben wird. Ich habe darüber nachgedacht, ein :syntax
Element dafür hinzuzufügen , aber das ist kaputt gegangen, als es andere Syntaxelemente überlappte, also habe ich diese Idee fallen gelassen.
Antworten:
Du könntest
:set numberwidth=6
und eine große Mindestbreite für die Zeilennummernspalte ein:set columns=86
(oder mit der Maus) auf die richtige Größe ändern .Wenn Sie eine Datei mit einer Million Zeilen bearbeiten, haben Sie möglicherweise Probleme, aber das ist unwahrscheinlich. Auf diese Weise verschwenden Sie auch 6 Spalten Bildschirmfläche. Es gibt also immer noch alle möglichen Probleme.
Sie können nach der 80. Spalte hervorheben, indem Sie
:match
wie hier und hier sagen .Darüber hinaus sehe ich keinen Weg, dies zu tun. Scheint, als wäre es eine nette Funktion.
quelle
Versuche dies:
Sie können die entfernen,
if (&columns > 80) |
wenn Sie immer 80 Spalten möchten.quelle
Ich habe keine Lösung für den Soft Wrap, aber beim Markieren einer Spalte wird ab Vim 7.3 (veröffentlicht am 15.08.2010)
:set colorcolumn=80
Spalte 80 hervorgehoben. Die Farbe hängt von Ihrer Syntaxdatei ab.Siehe Bedenken hinsichtlich des Spaltenlayouts von Vim 80 ,
:h colorcolumn
.quelle
:let w:eighty_column_match = matchadd('ColorColumn', '\%81v.\+', 100)
colorwidth
Sache ist aus anderen Gründen hilfreich, deshalb bin ich froh, dass Sie dies gepostet haben.Hast du es versucht
'linebreak'
?quelle
breakat
ist nur ein Muster (keine Länge), also sehe ich nicht, wie ich dies verwenden könnte, um Soft Wrap bei 80 zu erzwingen ...^.{,80}\b
würde für Leute tun, die weiche / erweiterte Tabs verwenden. Beachten Sie, dass dies Perl-Regex und nicht Vim-Regex ist.Es gibt keinen guten Weg, dies zu tun. Wir können eine Behelfslösung
setlocal softwrap
mit hacken,autocmd
wenn wir die Antwort von @eborisch ändern. Wenn wir die Größe jedes Mal ändern, wenn wir einen Puffer eingeben, und die Größe der lokalen Variablen auf eine bestimmte Länge ändernsoftwrap
festgelegt wird, erhalten wir das gewünschte Verhalten.Nehmen wir an, wir möchten 80 Spalten weich umbrechen. Wir können Folgendes einschreiben
.vimrc
.Verwenden Sie die folgenden Befehle, um den Modus für einen bestimmten Puffer zu aktivieren:
quelle