Wie zeige ich eine vertikale Linie, um die Linie in Vim zu umbrechen?

116

Ich bin daran interessiert, eine Möglichkeit zu finden, eine vertikale Linie in Spalte 80 in Vim (nicht GVim) anzuzeigen.

Ich habe verwendet set wrap, aber ich möchte nur eine vertikale Linie zeigen, damit ich die lange Linie selbst umbrechen kann.

Jennifer
quelle
Mögliches Duplikat von Vim 80-Spaltenlayoutproblemen
Trevor Boyd Smith

Antworten:

15

Bearbeiten: Für Vim> = 7.3 siehe Antwort unten .

Leider hat vim keinen Mechanismus, um eine vertikale Linie nach einer gewünschten Spalte anzuzeigen (im Gegensatz zu beispielsweise TextMate). Es gibt jedoch alternative visuelle Indikatoren, mit denen Sie anzeigen können, dass eine Linie zu lang ist.

Folgendes verwende ich (Sie können dies in Ihre einfügen .vimrc):

nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
 if !exists('w:longlinehl')
  let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
  echo "Long lines highlighted"
 else
  call matchdelete(w:longlinehl)
  unl w:longlinehl
  echo "Long lines unhighlighted"
 endif
endfunction

Dann können Sie <Leader>HSpalten über 80 umschalten, die hervorgehoben werden.

Sam
quelle
Die vim-Skriptdarstellung des Führungsschlüssels. Siehe Aktuelle <Leader> -Tasteneinstellung anzeigen
Rod
@Will, Learn Vimscript the Hard Way ist eine gute Quelle, um mehr über das Vim-Kaninchenloch zu erfahren.
Jazzabeanie
310

Neu in Vim 7.3:

'colorcolumn' ist eine durch Kommas getrennte Liste von Bildschirmspalten, die mit ColorColumn hervorgehoben werden. Nützlich zum Ausrichten von Text. Verlangsamt das Neuzeichnen des Bildschirms. Die Bildschirmspalte kann eine absolute Zahl oder eine Zahl mit vorangestelltem '+' oder '-' sein, die zu 'Textbreite' hinzugefügt oder von dieser abgezogen wird.

Beispiel aus den Dokumenten:

:set colorcolumn=+1        " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3  " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey

Sie können auch absolute Zahlen verwenden:

:set colorcolumn=80
OnkelZeiv
quelle
4
Ich denke, es ist gut zu beachten, dass die Farbe automatisch durch Ihre Hervorhebungsfarbe bestimmt wird, es sei denn, Sie stellen sie manuell wie im Beispiel ein.
Alex Hart
Beachten Sie, dass die highlightEinstellung nach allen colorschemeBefehlen festgelegt werden muss, da dies Ihre Hervorhebungsfarbe überschreiben würde.
c4urself
7
Ich ging mit hellem, brennendem Gehirnrot ... weil du weißt ... Zeilenlänge
Ron Dahlgren
Kennen Sie eine Möglichkeit, zwei verschiedene Farben für die Farbsäule zu haben? Ich hätte gerne zwei: eine einfache mit 80 Zeichen für Code und eine sehr schwache mit 72 Zeichen für fließenden Text / Kommentare.
Alice
Es wäre gut zu erwähnen, textwidthdass vim beim Tippen auch umbrochen wird.
Küken
6

Ich benutze, match ErrorMsg '\%>80v.\+'was alles über 80 Zeichen mit rot hervorhebt.

Ich habe diesen Befehl in meine python.vim und ruby.vim unter ~ / .vim / after / ftplugin / eingefügt.

Pierre-Antoine LaFayette
quelle