oficial - Margen derecho en Vim
vim cancel edit (4)
¿Hay alguna manera de hacer que Vim / gVim destaque el margen derecho en el documento actual? Acabo de comenzar a trabajar con Vim por un tiempo y me pareció molesto sin el margen derecho en la columna 80.
He escrito una función vimscript en mi .vimrc para alternar columna de color cuando presiono, 8 (coma seguido de 8, donde coma es el líder definido para comandos definidos por el usuario, y ocho es mi tecla mnemotécnica para ''mostrar un margen en el 80.ª columna):
" toggle colored right border after 80 chars
set colorcolumn=81
let s:color_column_old = 0
function! s:ToggleColorColumn()
if s:color_column_old == 0
let s:color_column_old = &colorcolumn
windo let &colorcolumn = 0
else
windo let &colorcolumn=s:color_column_old
let s:color_column_old = 0
endif
endfunction
nnoremap <Leader>8 :call <SID>ToggleColorColumn()<cr>
He reescrito la respuesta de Jonathan Hartley para las versiones anteriores de Vim, como 7.2, ya que no hay colorcolumn
de colorcolumn
en los Vims anteriores.
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
let s:OverLengthToggleVariable=0
function! ToggleOverLength()
if s:OverLengthToggleVariable == 0
match OverLength //%81v./+/
let s:OverLengthToggleVariable=1
else
match OverLength //
let s:OverLengthToggleVariable=0
endif
endfunction
" I like <leader>h since highlight starts with h.
nnoremap <leader>h :call ToggleOverLength()<cr>
No hay una manera simple de visualizar el borde vertical del textwidth
-margin (en Vim 7.2 y anteriores). Sin embargo, uno puede resaltar todos los caracteres más allá del límite de 80 columnas usando el comando :match
.
:match ErrorMsg //%>80v./+/
Entonces, la solución general es usar el siguiente autocontrol.
:autocmd BufWinEnter * call matchadd(''ErrorMsg'', ''/%>''.&l:textwidth.''v./+'', -1)
Vim 7.3 introdujo colorcolumn.
:set colorcolumn=80
Puede ser más fácil para ti recordar la forma abreviada.
:set cc=80