¿Cómo mostrar una línea vertical para envolver la línea en Vim?


Respuestas:


15

Editar: Para Vim> = 7.3, consulte la respuesta a continuación .

Desafortunadamente, vim no tiene ningún mecanismo para mostrar una línea vertical después de una columna como desea (a diferencia de, por ejemplo, TextMate). Sin embargo, existen indicadores visuales alternativos que puede utilizar para mostrar que una línea es demasiado larga.

Esto es lo que uso (puedes poner esto en tu .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

Entonces puede usar <Leader>Hpara alternar columnas más de 80 resaltadas.


Representación del script vim de la clave principal. Consulte Mostrar configuración de la tecla <leader> actual
Rod

@Will, Learn Vimscript the Hard Way es un buen recurso para aprender sobre la madriguera del conejo vim.
jazzabeanie

310

Nuevo en Vim 7.3:

'colorcolumn' es una lista separada por comas de columnas de pantalla que están resaltadas con ColorColumn. Útil para alinear texto. Hará que el redibujado de la pantalla sea más lento. La columna de la pantalla puede ser un número absoluto, o un número precedido de '+' o '-', que se suma o se resta de 'textwidth'.

Ejemplo de los documentos:

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

También puede usar números absolutos:

:set colorcolumn=80

4
Creo que es bueno tener en cuenta que el color lo determina automáticamente el color de resaltado a menos que lo configure manualmente como en el ejemplo.
Alex Hart

Tenga en cuenta que la highlightconfiguración debe establecerse después de cualquier colorschemecomando, ya que anularía el color de resaltado.
C4urself

7
Fui con un rojo brillante que quema tu cerebro ... porque ya sabes ... longitud de línea
Ron Dahlgren

¿Conoce alguna forma de tener dos colores diferentes para la columna de colores? Me gustaría tener dos: uno simple con 80 caracteres para el código y uno muy tenue con 72 caracteres para el flujo de texto / comentarios.
Alice

Sería bueno mencionar que textwidthtambién hace que vim se ajuste cuando está escribiendo.
pollitos


6

Yo uso match ErrorMsg '\%>80v.\+'que resaltará cualquier cosa con más de 80 caracteres con rojo.

Puse ese comando en mi python.vim y ruby.vim en ~ / .vim / after / ftplugin /.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.