Por que o Vim só ativa minha configuração de realce depois que eu forneço manualmente o meu .vimrc?

2

Eu estava limpando meu vimrc hoje, dividindo-o em arquivos separados para facilitar a manutenção . Ao concluir essas alterações, todas as minhas configurações, mapeamentos e plug-ins parecem estar funcionando, exceto pelo destaque do espaço 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 realce 'RedundantSpaces' e instrui o vim a tornar o plano de fundo de qualquer texto que corresponda ao grupo de realce em vermelho, quando em um terminal colorido. A segunda linha define o padrão usado para identificar o texto que corresponde ao grupo de realce.

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

Se eu remover as linhas de todos os meus arquivos rc/*.vim individuais de .vimrc e colocar as duas linhas RedundantSpaces acima em .vimrc diretamente, o vim se comportará como esperado e o espaço em branco final será destacado.

No entanto, se eu deixar as linhas obtendo rc/*.vim e, em seguida, tiver as linhas RedundantSpaces no final do meu .vimrc (ou seja, esses comandos são os últimos a serem executados quando o vim é invocado), ainda não funciona, e eu preciso de source ~/.vimrc .

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

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

    
por Murali Suriar 05.05.2013 / 15:37

2 respostas

1

O problema é causado pelo plug-in 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 para t_Co= e RedundantSpaces , você verá que sensible é realmente analisado após seu arquivo appearance.vim .

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

Uma abordagem diferente seria removê-lo do diretório bundle e adicioná-lo como uma linha source separada em seu vimrc , antes do seu 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. …

    
por 05.05.2013 / 19:41
0

Se você estiver usando o NeoBundle, em seguida, usando NeoBundleLazy 'tpope/vim-sensible' , então NeoBundleSource no final do seu vimrc faz o truque. Veja também o link .

    
por 18.06.2014 / 21:57

Tags