Die Art und Weise, wie ich in Vim eine 80-Spalten-Anzeige mache, scheint falsch zu sein : set columns=80
. Manchmal auch set textwidth
, aber ich möchte in der Lage sein, Leitungsüberlauf mit der set columns
Alternative zu sehen und zu antizipieren .
Dies hat einige unglückliche Nebenwirkungen:
- Ich kann nicht
set number
aus Angst, zwischen Dateien mit unterschiedlichen Reihenfolgen von Zeilennummern aufzuteilen. dh <100 Zeilendateien und> = 100 Zeilendateien erfordernset columns
aufgrund der zusätzlichen Spalte, die für die Anzeige zusätzlicher Ziffern verwendet wird, zwei unterschiedliche Werte. - Ich starte auch neue (g) Vim-Sitzungen, anstatt Fenster vertikal zu teilen. Dies liegt daran
vsplit
, dass ichset columns
jedes Mal gezwungen bin, ein Fenster zu öffnen oder zu schließen, sodass das Starten einer neuen Sitzung weniger mühsam ist.
Wie gehen Sie mit der 80-Zeichen-Anzeige um, wenn Sie möchten set numbers
, vertikal teilen usw.?
vim
coding-style
cdleary
quelle
quelle
Antworten:
Ich habe dies in meiner .vimrc eingerichtet:
Dies hebt den Hintergrund in einem subtilen Rot für Text hervor, der die 80-Spalten-Grenze überschreitet (jedenfalls subtil im GUI-Modus - im Terminal-Modus ist dies weniger der Fall).
quelle
Ab Version 7.3 können Sie
set colorcolumn=80
(set cc=80
kurz) verwenden.Da frühere Versionen dies nicht unterstützen, verwende ich
.vimrc
stattdessen:Siehe auch die Online-Dokumentation zur
colorcolumn
Option .quelle
highlight ColorColumn ctermbg=7
Kürzere Art:
quelle
ErrorMsg
ist einhighlight-group
. In Vim gibt es viele Standard-Hervorhebungsgruppen, die Sie basierend auf der für diesen Fall gewünschten Farbcodierung verwenden können.Ich bevorzuge:
quelle
Die Antwort von Simon Howard ist großartig. Aber
/\%81v.\+/
nicht zu Highlight Registerkarten , die Spalte 81 nicht überschreiten. Also habe ich eine kleine Änderung vorgenommen, basierend auf den Dingen, die ich im VIM-Wiki gefunden habe, und der Auswahl der Farben von HS oben:Und jetzt wird VIM alles hervorheben, was Spalte 80 überschreitet.
quelle
guifg=white
am Ende dort hinzufügen .Minimalistischer, nicht übertriebener Ansatz. Nur das 79. Zeichen von zu langen Zeilen wird hervorgehoben. Es überwindet einige häufig auftretende Probleme: Arbeitet an neuen Fenstern, überlaufende Wörter werden richtig hervorgehoben.
Hinweis: Beachten Sie, dass
FileType scala,java
dies auf Scala- und Java-Quelldateien beschränkt ist. Sie werden dies wahrscheinlich anpassen wollen. Wenn Sie es weglassen würden, würde es auf allen Dateitypen funktionieren.quelle
FileType scala,java
? (arbeitet nicht für mich)Sie können auch eine Linie ziehen, um das Limit von 80 zu sehen:
Ergebnis:
quelle
Eine gute Möglichkeit, nur das erste Zeichen zu markieren, das die angegebenen Grenzen überschreitet:
Aus Damian Conways Vortrag .
quelle
Neuere Versionen von vim erlauben einen
:set numberwidth=x
Wert, der die Breite der Zeilennummernanzeige festlegt. Ich benutze Falten usw. nicht wirklich, also würde ich davon nichts wissen. Das Zeichnen einer dünnen vertikalen Linie liegt jedoch außerhalb der Möglichkeiten einer Konsolenanwendung. GVim kann dies zulassen (ich benutze es nicht, kann es dort also nicht kommentieren).quelle
Ich befürchte, dass Sie die Menge der Lösungen eingeschränkt haben, die Sie mit der Nullmenge belassen.
Die Verwendung
:set textwidth=80
behebt alle von Ihnen erwähnten Probleme, außer dass Sie das bevorstehende Zeilenlimit nicht leicht erkennen können. Wenn du:set ruler
tun, aktivieren Sie die Anzeige der x- und y-Position in der Statusleiste, anhand derer Sie sehen können, in welcher Spalte Sie sich befinden.Abgesehen davon bin ich mir nicht sicher, was ich dir sagen soll. Es ist eine Schande, die Zahlenspalte zu verlieren, die Spalte zu falten und zu teilen, nur weil Sie müssen
:set columns=80
.quelle
Sie können dies versuchen:
Dadurch werden in jedem Puffer zwei Markierungen festgelegt, eine für Zeichen in den 8 Spalten vor der
&textwidth
Einstellung und eine für Zeichen außerhalb dieser Spalte. Auf diese Weise haben Sie ein gewisses Maß an Vorfreude. Natürlich können Sie es anpassen, um eine andere Breite zu verwenden, wenn Sie mehr oder weniger Vorfreude wünschen (was Sie in Form eines Verlusts der Syntaxhervorhebung in diesen Spalten bezahlen).quelle
Wenn man sich die Hilfespalten ansieht, wird man nicht wirklich dazu gebracht, sich damit zu beschäftigen.
In der Konsole wird dies normalerweise durch die Konsoleneinstellung bestimmt (dh es wird automatisch erkannt). In der GUI wird die Breite der GVIM-Fenster bestimmt (und durch diese bestimmt).
Normalerweise lassen Sie Konsolen und Fenstermanager ihre Arbeit erledigen, indem Sie das auskommentieren
set columns
Ich bin mir nicht sicher, was Sie unter "Leitungsüberlauf sehen und antizipieren" verstehen. Wenn Sie möchten, dass EOL ungefähr in Spalte 80 eingefügt wird, verwenden Sie entweder
set textwidth
oderset wrapmargin
; Wenn Sie nur Soft Wrap möchten (dh Linie wird gewickelt, aber keine tatsächliche EOL), dann spielen Sie mitset linebreak
undset showbreak
.quelle
Dieser ist außerhalb des linken Feldes, aber es ist eine nette kleine Karte, mit der Sie die Größe Ihrer aktuellen Aufteilung auf 80 Zeichen ändern können, wenn Sie die Zeilennummern aktiviert haben:
quelle
Sie können dies versuchen, um die Fenstergröße so einzustellen, dass 80 Zeichen tatsächlichen Textes zulässig sind. Dies funktioniert jedoch immer noch nicht mit vertikalen Teilungen.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Dies erfordert vim 7+, 7.3 für die relative Nummer.
quelle