Sono interessato a trovare un modo per mostrare una linea verticale alla colonna 80 in Vim (non GVim).
Ho usato set wrap
, ma voglio solo mostrare una linea verticale in modo da poter avvolgere la linea lunga da solo.
Sono interessato a trovare un modo per mostrare una linea verticale alla colonna 80 in Vim (non GVim).
Ho usato set wrap
, ma voglio solo mostrare una linea verticale in modo da poter avvolgere la linea lunga da solo.
Risposte:
Modifica: per Vim> = 7.3 vedi la risposta sotto .
Sfortunatamente vim non ha alcun meccanismo per visualizzare una linea verticale dopo una colonna come desideri (a differenza, ad esempio, di TextMate). Tuttavia, ci sono indicatori visivi alternativi che puoi usare per mostrare che una linea è troppo lunga.
Ecco cosa uso (puoi metterlo nel tuo .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
Quindi puoi utilizzare <Leader>H
per alternare le colonne oltre 80 evidenziate.
Novità di Vim 7.3:
'colorcolumn' è un elenco separato da virgole di colonne dello schermo evidenziate con ColorColumn. Utile per allineare il testo. Rende più lento il ridisegno dello schermo. La colonna dello schermo può essere un numero assoluto o un numero preceduto da "+" o "-", che viene aggiunto o sottratto da "larghezza del testo".
Esempio dai documenti:
:set colorcolumn=+1 " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3 " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey
Puoi anche usare numeri assoluti:
:set colorcolumn=80
highlight
impostazione deve essere impostata dopo qualsiasi colorscheme
comando in quanto ciò sovrascriverebbe il colore di evidenziazione.
textwidth
fa anche in modo che vim si avvolga durante la digitazione.
C'è un altro modo per notificare la lunga fila.
evidenzia OverLength ctermbg = rosso ctermfg = bianco guibg = # 592929
corrisponde a OverLength /\%81v.*/
Uso match ErrorMsg '\%>80v.\+'
che evidenzierà qualsiasi cosa con più di 80 caratteri in rosso.
Ho inserito quel comando nel mio python.vim e ruby.vim sotto ~ / .vim / dopo / ftplugin /.
Diverse risposte qui http://vim.wikia.com/wiki/Highlight_long_lines semplice comando automatico
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)