¿Por qué Vim solo activa mi configuración resaltada después de obtener mi .vimrc manualmente?

¿Por qué Vim solo activa mi configuración resaltada después de obtener mi .vimrc manualmente?

estaba limpiando mivimrchoy, dividiéndolo en archivos separados para que sea más fácil de mantener. Al finalizar estos cambios, toda mi configuración, asignaciones y complementos parecen estar funcionando, excepto resaltar los espacios en blanco al final.

Tengo las siguientes líneas en .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

Según tengo entendido, la primera línea crea un grupo resaltado 'RedundantSpaces' e indica a vim que haga que el fondo de cualquier texto que coincida con el grupo resaltado sea rojo, cuando esté en una terminal de color. La segunda línea define el patrón utilizado para identificar el texto que coincide con el grupo resaltado.

Cuando abro un archivo en vim y empiezo a escribir espacios en una línea en blanco, no están resaltados en rojo. Si ejecuto :source ~/.vimrc, aparece el resaltado.

Si elimino las líneas que originan todos mis rc/*.vimarchivos individuales .vimrcy coloco las dos RedundantSpaceslíneas anteriores .vimrcdirectamente, vim se comporta como se esperaba y se resaltan los espacios en blanco finales.

Sin embargo, si dejo las líneas sourcing rc/*.vimy luego tengo las RedundantSpaceslíneas al final de my .vimrc(es decir, esos comandos son los últimos que se ejecutan cuando se invoca vim), el resaltado aún no funciona y necesito hacerlo source ~/.vimrc.

Parece claro que algo en mis rc/*.vimarchivos interactúa mal con la configuración de resaltado, sin embargo, no puedo explicar qué es eso. Nada en ninguno de esos archivos debería interactuar con la configuración resaltada.

¿Alguien puede sugerir qué podría estar yendo mal aquí?

Respuesta1

El problema es causado por elcomplemento sensato: línea 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

Si ejecuta vim en modo de registro detallado ( vim -V15load_log.vim), busca t_Co=y RedundantSpacesverá que sensibleen realidad está analizadodespuéstu appearance.vimarchivo.

La solución rápida sería comentar esa sección del código y agregarla a su archivo .vimrc, pero a medida que se vincula a los repositorios de git, quizás eso no sea lo que desea.

Un enfoque diferente sería sacarlo del bundledirectorio y agregarlo como una sourcelínea separada en su archivo vimrc.antestu bucle global.

Es decir:

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

  for f in split(glob ...

Otra forma sería cargar un resaltado personalizado en BufLoad.

Etc. …

Respuesta2

Si está usando NeoBundle y luego usa NeoBundleLazy 'tpope/vim-sensible', NeoBundleSourceal final de su vimrc funciona. Ver tambiénhttps://github.com/tpope/vim-sensible/issues/74.

información relacionada