Como mostrar a linha vertical para quebrar a linha no Vim?

116

Estou interessado em encontrar uma maneira de mostrar uma linha vertical na coluna 80 no Vim (não no GVim).

Eu usei set wrap, mas só quero mostrar uma linha vertical para que eu mesmo possa quebrar a linha longa.

Jennifer
fonte
Possível duplicata de problemas de layout de coluna
Trevor Boyd Smith,

Respostas:

15

Editar: Para Vim> = 7.3 veja a resposta abaixo .

Infelizmente, o vim não tem nenhum mecanismo para exibir uma linha vertical após uma coluna como você deseja (ao contrário, digamos, TextMate). No entanto, existem indicadores visuais alternativos que você pode usar para mostrar que uma linha é muito longa.

Aqui está o que eu uso (você pode colocar no seu .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

Então você pode usar <Leader>Hpara alternar as colunas acima de 80 sendo realçadas.

Sam
fonte
A representação do script vim da chave líder. Consulte Mostrar configuração atual da tecla <leader>
Rod
@ Will, Aprenda Vimscript da maneira mais difícil é um bom recurso para aprender sobre a toca do coelho do vim.
jazzabeanie
310

Novo no Vim 7.3:

'colorcolumn' é uma lista separada por vírgulas de colunas da tela que são destacadas com ColorColumn. Útil para alinhar o texto. Tornará o redesenho da tela mais lento. A coluna da tela pode ser um número absoluto ou um número precedido por '+' ou '-', que é adicionado ou subtraído da 'largura do texto'.

Exemplo dos documentos:

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

Você também pode usar números absolutos:

:set colorcolumn=80
UncleZeiv
fonte
4
Acho que é bom observar aqui que a cor é determinada automaticamente pela cor de realce, a menos que você a defina manualmente como no exemplo.
Alex Hart,
Observe que a highlightconfiguração deve ser definida após qualquer colorschemecomando, pois isso anularia a cor de destaque.
c4urself de
7
Eu escolhi brilhante, queime seu cérebro vermelho ... porque você sabe ... comprimento da linha
Ron Dahlgren
Você conhece uma maneira de ter duas cores diferentes para a coluna colorida? Eu gostaria de ter dois: um simples com 80 caracteres para o código e um muito fraco com 72 caracteres para texto corrido / comentários.
Alice
Seria bom mencionar que textwidthtambém faz o vim quebrar quando você está digitando.
pintos
6

Eu uso o match ErrorMsg '\%>80v.\+'qual destacará qualquer coisa acima de 80 caracteres com vermelho.

Coloquei esse comando em meu python.vim e ruby.vim em ~ / .vim / after / ftplugin /.

Pierre-Antoine LaFayette
fonte