Comment afficher la ligne verticale pour envelopper la ligne en Vim?

je suis intéressé à trouver un moyen de montrer une ligne verticale à la colonne 80 dans Vim (pas GVim).

j'ai utilisé set wrap , mais je veux juste montrer une ligne verticale pour que je puisse envelopper la longue ligne moi-même.

102
demandé sur Matthias Braun 2009-12-17 04:57:35

5 réponses

Edit: Pour Vim >=7.3 voir la réponse ci-dessous .

malheureusement vim n'a pas de mécanisme pour afficher une ligne verticale après une colonne comme vous voulez (contrairement, disons, TextMate). Cependant, il existe d'autres indicateurs visuels que vous pouvez utiliser pour montrer qu'une ligne est trop longue.

voici ce que j'utilise (Vous pouvez le mettre dans votre .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

alors vous pouvez utiliser <Leader>H pour basculer les colonnes de plus de 80 sont surlignées.

15
répondu Sam 2017-05-23 12:26:06

nouveau dans Vim 7.3:

'colorcolumn' est une liste séparée par des virgules de colonnes d'écran qui sont surligné avec ColorColumn. Utile pour aligner le texte. Sera faites redessiner l'écran plus lentement. La colonne d'écran peut être un nombre absolu, ou un nombre précédé par '+' ou '-', qui est ajoutée ou soustraite "textwidth".

exemple tiré du docs:

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

vous pouvez utiliser nombres absolus aussi:

:set colorcolumn=80
280
répondu UncleZeiv 2010-09-24 13:42:01

il y a une autre façon de notifier la ligne longue.

mettre en évidence OverLength ctermbg=rouge ctermfg=blanc guibg=#592929

match OverLength/ \%81v.* /

Vim 80 la présentation de la colonne concerne

11
répondu Brian 2017-05-23 11:54:44

j'utilise match ErrorMsg '\%>80v.\+' qui mettra en évidence tout ce qui dépasse 80 caractères avec du rouge.

j'ai mis cette commande dans mon python.vim et de rubis.vim sous ~/.vim/après/ftplugin/.

6
répondu Pierre-Antoine LaFayette 2009-12-17 05:57:47

plusieurs réponses ici http://vim.wikia.com/wiki/Highlight_long_lines simple autocommand

:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
3
répondu michael 2009-12-17 02:39:23