O realce de comprimento de linha funciona corretamente no console Vim, não na GUI

1

Esta questão está relacionada com this one .

Damian Conway forneceu um bom trecho para marcar o comprimento excessivo da linha em sua recente palestra da OSCON 2013 sobre o Vim.

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

que resulta disso:

FuncionamuitobemaousaroconsoleVim.Noentanto,alterarapartectermbg=magentaparaguibg=Magentaapenasdestacaocaractere,masnãoocoloreemmagenta.

Como posso fazer isso funcionar corretamente para o gVim?

    
por Isxek 21.06.2014 / 06:24

1 resposta

3

Umm, funciona para mim? Como referência, estou executando o patch 335 do Vim v7.4 (não está sangrando muito!)

Adicionei as duas linhas a seguir ao meu .vimrc :

highlight ColorColumn ctermbg=magenta guibg=Magenta
call matchadd('ColorColumn', '\%81v', 100)

Recarregado vim e taa-daa! Os personagens na 81ª posição foram magicamente autorizados.

EDITAR: De acordo com os comentários abaixo, descobrimos que o @isxek precisava colocar essas duas linhas LAST em seu arquivo .vimrc. Evidentemente, o esquema de cores usado (Molokai) define o esquema de destaque ColorColumn. Eu não vi esse problema desde que eu coloquei o ColorColumn em destaque DEPOIS que tudo está carregado, essencialmente realizando a mesma coisa que 'colocando as linhas por último'.

Pessoalmente, eu recomendaria usar um identificador Group exclusivo para não mexer com as cores de realce definidas para o grupo realçado ColorColumn .

highlight MyLineTooLongMarker ctermbg=magenta guibg=Magenta
call matchadd('MyLineTooLongMarker', '\%81v', 100)

Funciona tanto para o vim quanto para o gvim.

Você tentou / Você usa ColorColumn ? Opção relativamente nova no Vim para destacar uma coluna (ou colunas!) Baseada em textwidth . Foi adicionado com version 7.3 . Muito útil!

Eu uso assim:

" it didn't exist before Vim v7.3, sometimes I encounter older versions of vim (centOS, looking at you!!)
if v:version >= 703
    " a faint grey (gray?) color, not too insistent
    highlight ColorColumn term=reverse ctermbg=233 guibg=#202020
    " put the marker(s) at 'textwidth+2' (and at position 120)
    set colorcolumn=+2,120
    " if we're called as '*view', or on a console, turn off the colorcolumn
    if v:progname =~? 'view' || &term =~? 'linux|console'
        set colorcolumn=
    endif
endif

Então eu essencialmente tenho duas linhas no meu monitor, mostradas em textwidth + 2 e na posição 120 , como padrão. Eu peguei uma captura de tela e movi as linhas com set colorcolumn=+2,90 , então não é muito grande por aqui. Parece assim:

Você pode ver as duas linhas cinzas verticais, posicionadas em textwidth + 2 e na posição 90 . Aqui, meu textwidth foi definido como 78 , então as linhas estão posicionadas em 80 e 90 caracteres fora.

Agora, você PODERIA usar as duas linhas para adicionar uma forma de colorcolumn para uma versão anterior ao v7.3 do vim. Cole-os em uma cláusula else do bloco de verificação de versão acima.

    
por 21.06.2014 / 07:27

Tags