Esquema de Cores Vim Sobrescrito por um Plugin

1

Estou tentando configurar alguns realces mais bonitos para o Vdebug.

Eu dei uma olhada na fonte e ela diz Eu preciso segmentar um DbgBreakptLine (não sei como são chamados, mas é o que você coloca depois de hi ).

Mas se eu colocar:

hi DbgBreakptLine ctermbg=NONE ctermfg=NONE

no meu esquema de cores vim, não faz nada. No entanto, colar isso em uma sessão tem o efeito desejado. Eu só posso concluir que o Vdebug está destruindo meus estilos escolhidos, tomando precedência de alguma forma. Mas como? Está correndo atrás do meu esquema de cores? Acho que não, porque a primeira coisa que meu .vimrc faz é carregar o patógeno, então seleciona meu esquema de cores.

Devido a isso, eu dei uma olhada na Internet em busca de soluções para a configuração de substituição de plugins, mas não consegui encontrar nada útil.

A parte relevante do meu .vimrc:

execute pathogen#infect()
call pathogen#helptags()

colorscheme maxbucknell

Atualizar

Eu dei uma olhada em esta questão , e pensei em olhar para :scrip , que mostra quais arquivos são carregados quando. Com certeza, os plugins são carregados após as cores. Idealmente eu gostaria de alguma forma de personalizar isso, sem alterar o plugin, ou fazer algo hacky como colocar o comando dentro de .vim/after .

    
por Max Bucknell 19.07.2014 / 22:54

1 resposta

1

Você notou que o plugin realmente define o estilo desse grupo de destaque?

hi default DbgBreakptLine term=reverse ctermfg=White ctermbg=Green guifg=#ffffff guibg=#00ff00

Como ele é originado após seu ~/.vimrc e seu esquema de cores ele substituirá qualquer regra com o mesmo nome.

Isso não é muito claro, infelizmente, você basicamente tem três opções viáveis:

  • altere as cores no plug-in,

  • mova as linhas do plug-in para o seu esquema de cores e edite-as ao seu gosto,

  • adicione essas linhas ao seu ~/.vimrc :

    augroup MyColors
        autocmd!
        autocmd ColorScheme * highlight DbgBreakptLine ctermbg=NONE ctermfg=NONE
    augroup END
    

Usar o diretório ~/.vim/after/ não é um truque: ele é documentado com certeza, mas geralmente é muito mais limpo do que a confusão equivalente no seu ~/.vimrc . De qualquer forma, não tenho certeza se funciona para suas necessidades específicas. Você poderia tentar este plugin (nunca tentei) mas não tenho certeza do que você quer que mereça outro plugin na sua configuração.

editar

Acontece que você pode fazer isso com ~/.vim/after/ , mas essa solução realmente parece bastante "hacky" para mim, já que mistura "plugins" e "colorschemes". Seja como for, basta colocar esta linha em ~/.vim/after/plugin/foo.vim (a parte antes do ponto do nome do arquivo não importa):

hi DbgBreakptLine ctermbg=NONE ctermfg=NONE
    
por 20.07.2014 / 00:14