![Por que o Vim só ativa minha configuração de destaque depois de obter meu .vimrc manualmente?](https://rvso.com/image/31675/Por%20que%20o%20Vim%20s%C3%B3%20ativa%20minha%20configura%C3%A7%C3%A3o%20de%20destaque%20depois%20de%20obter%20meu%20.vimrc%20manualmente%3F.png)
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/*.vim
arquivos individuais .vimrc
e colocar as duas RedundantSpaces
linhas acima .vimrc
diretamente, 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 RedundantSpaces
linhas 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/*.vim
arquivos 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 RedundantSpaces
verá que sensible
é realmente analisadodepoisseu appearance.vim
arquivo.
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 bundle
diretório e adicioná-lo como uma source
linha 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'
, NeoBundleSource
no final do seu vimrc resolve. Veja tambémhttps://github.com/tpope/vim-sensible/issues/74.