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.
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.
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
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.* /
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/.
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)