Por que o Vim só ativa minha configuração de destaque depois de obter meu .vimrc manualmente?

Por que o Vim só ativa minha configuração de destaque depois de obter meu .vimrc manualmente?

Eu estava limpando meuvimrchoje, dividindo-o em arquivos separados para facilitar sua manutenção. Após a conclusão dessas alterações, todas as minhas configurações, mapeamentos e plug-ins parecem estar funcionando, exceto o destaque de espaços em branco à direita.

Eu tenho as seguintes linhas em .vim/rc/appearance.vim:

highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted

Pelo que entendi, a primeira linha cria um grupo de destaque 'RedundantSpaces' e instrui o vim a tornar vermelho o plano de fundo de qualquer texto que corresponda ao grupo de destaque, quando estiver em um terminal colorido. A segunda linha define o padrão usado para identificar o texto que corresponde ao grupo de destaque.

Quando abro um arquivo no vim e começo a digitar espaços em uma linha em branco, eles não ficam destacados em vermelho. Se eu executar :source ~/.vimrc, o destaque aparece.

Se eu remover as linhas que originam todos os meus rc/*.vimarquivos individuais .vimrce colocar as duas RedundantSpaceslinhas acima .vimrcdiretamente, o vim se comportará conforme o esperado e o espaço em branco final será destacado.

Porém, se eu deixar nas linhas sourcing rc/*.vim, e depois tiver as RedundantSpaceslinhas no final do meu .vimrc(ou seja, esses comandos são os últimos a serem executados quando o vim é invocado), o realce ainda não funciona, e eu preciso source ~/.vimrc.

Parece claro que algo em meus rc/*.vimarquivos está interagindo mal com a configuração de realce, mas não consigo explicar o que é isso. Nada em nenhum desses arquivos deve interagir com a configuração de destaque.

Alguém pode sugerir o que pode estar errado aqui?

Responder1

O problema é causado peloplugin sensato: linha 93.:help t_Co

" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
  set t_Co=16  " << --- Causes hickup
endif

Se você executar o vim no modo de log detalhado ( vim -V15load_log.vim) – e pesquisar t_Co=e RedundantSpacesverá que sensibleé realmente analisadodepoisseu appearance.vimarquivo.

A solução rápida seria comentar essa seção do código e adicioná-la ao seu arquivo .vimrc, mas ao vincular aos repositórios git, talvez não seja isso que você deseja.

Uma abordagem diferente seria movê-lo para fora do bundlediretório e adicioná-lo como uma sourcelinha separada no seu arquivo vimrc,antesseu loop glob.

Ou seja:

  source ~/.vim/hacks/vim-sensible/plugin/sensible.vim

  for f in split(glob ...

Outra forma seria carregar o destaque personalizado no BufLoad.

Etc.…

Responder2

Se você estiver usando o NeoBundle, use NeoBundleLazy 'tpope/vim-sensible', NeoBundleSourceno final do seu vimrc resolve. Veja tambémhttps://github.com/tpope/vim-sensible/issues/74.

informação relacionada