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.


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.


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

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.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.