![¿Por qué Vim solo activa mi configuración resaltada después de obtener mi .vimrc manualmente?](https://rvso.com/image/31675/%C2%BFPor%20qu%C3%A9%20Vim%20solo%20activa%20mi%20configuraci%C3%B3n%20resaltada%20despu%C3%A9s%20de%20obtener%20mi%20.vimrc%20manualmente%3F.png)
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/*.vim
archivos individuales .vimrc
y coloco las dos RedundantSpaces
líneas anteriores .vimrc
directamente, vim se comporta como se esperaba y se resaltan los espacios en blanco finales.
Sin embargo, si dejo las líneas sourcing rc/*.vim
y luego tengo las RedundantSpaces
lí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/*.vim
archivos 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 RedundantSpaces
verá que sensible
en realidad está analizadodespuéstu appearance.vim
archivo.
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 bundle
directorio y agregarlo como una source
lí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'
, NeoBundleSource
al final de su vimrc funciona. Ver tambiénhttps://github.com/tpope/vim-sensible/issues/74.