430 Stimmen

Vim 80-Spalten-Layout Bedenken

Die Art und Weise, wie ich die 80-Spalten-Angabe in Vim mache, scheint nicht korrekt zu sein: set columns=80 . Gelegentlich habe ich auch set textwidth aber ich möchte in der Lage sein, den Leitungsüberlauf zu sehen und mit dem set columns alternativ.

Dies hat einige Unglücklicherweise Nebenwirkungen:

  1. Ich kann nicht set number aus Angst vor der Aufteilung zwischen Dateien mit unterschiedlichen Zeilennummern, d.h. Dateien mit < 100 Zeilen und Dateien mit >= 100 Zeilen erfordern zwei verschiedene set columns Werte, da eine zusätzliche Spalte für die Anzeige der zusätzlichen Ziffern verwendet wird.
  2. Ich starte auch neue (g)Vim-Sitzungen, anstatt Windows vertikal aufzuteilen. Der Grund dafür ist vsplit zwingt mich zu set columns jedes Mal, wenn ich ein Fenster öffne oder schließe, so dass das Starten einer neuen Sitzung weniger mühsam ist.

Wie geht man mit der 80-Zeichen-Angabe um, wenn man set numbers vertikal geteilt, usw.?

788voto

Jeremy W. Sherman Punkte 35413

Ab vim 7.3 können Sie set colorcolumn=80 ( set cc=80 abgekürzt).

Da frühere Versionen dies nicht unterstützen, ist meine .vimrc stattdessen verwendet:

if exists('+colorcolumn')
  set colorcolumn=80
else
  au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
endif

Siehe auch die Online-Dokumentation über den colorcolumn Option .

594voto

Simon Howard Punkte 8923

Ich habe dies in meiner .vimrc eingerichtet:

highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/

Dadurch wird der Hintergrund bei Text, der die 80-Spalten-Grenze überschreitet, dezent rot hervorgehoben (im GUI-Modus jedenfalls dezent - im Terminalmodus ist es weniger dezent).

58voto

Maksim Vi. Punkte 8777

Kürzere Variante:

match ErrorMsg '\%>80v.\+'

54voto

wieczorek1990 Punkte 5978

Ich bevorzuge:

highlight ColorColumn ctermbg=gray
set colorcolumn=80

30voto

Z.Zen Punkte 838

Die Antwort von Simon Howard ist großartig. Aber /\%81v.\+/ hebt Tabulatoren, die die Spalte 81 überschreiten, nicht hervor. Also habe ich eine kleine Änderung vorgenommen, basierend auf den Informationen, die ich auf VIM-Wiki und die Farbwahl von HS oben:

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%>80v.\+/

Und jetzt hebt VIM alles hervor, was die Spalte 80 überschreitet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X