A maneira que eu faço indicação de 80 colunas no vim parece incorreta: set columns=80
. Às vezes, também set textwidth
, mas quero poder ver e antecipar o estouro de linha com a set columns
alternativa.
Isso tem alguns efeitos colaterais infelizes :
- Não posso ter
set number
medo de dividir arquivos com diferentes ordens de números de linha; ou seja, <100 arquivos de linha e> = 100 arquivos de linha exigirão doisset columns
valores diferentes devido à coluna extra usada para a exibição de dígitos adicionais. - Também inicio novas sessões (g) Vim em vez de dividir janelas verticalmente. Isso ocorre porque
vsplit
obriga-me aset columns
cada vez que abro ou fecho um painel, portanto, iniciar uma nova sessão é menos trabalhoso.
Como você lida com a indicação de 80 caracteres quando deseja set numbers
dividir verticalmente etc.?
vim
coding-style
cdleary
fonte
fonte
Respostas:
Eu tenho isso configurado no meu .vimrc:
Isso destaca o fundo em um vermelho sutil para texto que ultrapassa o limite de 80 colunas (sutil no modo GUI, de qualquer maneira - no modo terminal é menos).
fonte
A partir do vim 7.3, você pode usar
set colorcolumn=80
(set cc=80
para abreviar).Como as versões anteriores não suportam isso, meus
.vimrc
usos são:Consulte também a documentação online sobre a
colorcolumn
opção .fonte
highlight ColorColumn ctermbg=7
Maneira mais curta:
fonte
ErrorMsg
é umhighlight-group
. Existem muitos grupos de destaque padrão no Vim que você pode usar com base na codificação de cores desejada para este caso.Eu prefiro:
fonte
A resposta de Simon Howard é ótima. Mas
/\%81v.\+/
falha ao destacar guias que excedem a coluna 81. Então, eu fiz um pequeno ajuste, com base nas coisas que encontrei no wiki do VIM e nas opções de cores do HS acima:E agora o VIM destacará qualquer coisa que exceda a coluna 80.
fonte
guifg=white
no final lá.Abordagem minimalista e sem exageros. Somente o 79º caractere de linhas muito longas é destacado. Ele supera alguns problemas comuns: funciona em novas janelas, as palavras que transbordam são destacadas corretamente.
Nota: observe que
FileType scala,java
isso limita isso aos arquivos de origem Scala e Java. Você provavelmente desejará personalizar isso. Se você omitir, funcionaria em todos os tipos de arquivo.fonte
FileType scala,java
? (não funciona para mim)Você também pode desenhar uma linha para ver o limite de 80:
Resultado:
fonte
Uma boa maneira de marcar apenas o primeiro caractere saindo dos limites especificados:
Da palestra de Damian Conway .
fonte
As versões mais recentes do vim permitem um
:set numberwidth=x
valor que define a largura da exibição do número da linha. Eu realmente não uso dobrável, etc, então eu não saberia disso. Desenhar uma linha vertical fina está além das habilidades de um aplicativo de console. O GVim pode permitir isso (eu não o uso, então não posso comentar lá).fonte
Receio que você tenha colocado restrições no conjunto de soluções que, assim, deixam você com o conjunto nulo.
O uso
:set textwidth=80
corrigirá todos os problemas mencionados, exceto que você não pode ver facilmente o limite de linhas chegando. Se você:set ruler
, você ativará a exibição da posição x, y na barra de status, que poderá usar para ver em qual coluna está.Além disso, não tenho certeza do que lhe dizer. É uma pena perder a coluna numérica, dobrar a coluna e dividir apenas porque você precisa
:set columns=80
.fonte
Você pode tentar isso:
Isso configurará dois destaques em cada buffer, um para caracteres nas 8 colunas anteriores ao que
&textwidth
estiver definido e outro para caracteres além dessa coluna. Dessa forma, você tem alguma extensão de antecipação. É claro que você pode ajustá-lo para usar uma largura diferente se desejar mais ou menos antecipação (que você paga na forma de perda de sintaxe destacada nessas colunas).fonte
Bem, olhando para as colunas: help, realmente não está sendo feito para mexer.
No console, geralmente é determinado pela configuração do console (ou seja, é detectado automaticamente); na GUI, ele determina (e é determinado por) a largura das janelas do gvim.
Normalmente, você apenas permite que consoles e gerenciadores de janelas realizem seus trabalhos comentando o
set columns
Não sei ao certo o que você quer dizer com "ver e antecipar o estouro de linha". Se você deseja que o EOL seja inserido aproximadamente na coluna 80, use
set textwidth
ouset wrapmargin
; se você quiser apenas um quebra automática (ou seja, a linha está quebrada, mas não a EOL real), brinque comset linebreak
eset showbreak
.fonte
este está fora do campo esquerdo, mas é um bom mapa para redimensionar sua divisão atual para 80 caracteres, se você tiver os números de linha:
fonte
Você pode tentar isso para definir o tamanho da janela para permitir 80 caracteres de texto real. Isso ainda não funciona com divisões verticais.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Isso requer o vim 7+, 7.3 para o número relativo.
fonte