temas schemes colorscheme color best awesome vim colors color-scheme

vim - schemes - Sobrescribir el esquema de color



vim color schemes list (5)

A menudo me encuentro con ganas de cambiar solo algo pequeño en un esquema de colores, pero no quiero editar el archivo original. Intenté poner mi cambio en ''~ / .vim / after / colors / blah.vim'', pero eso no funciona para mí.

Ejemplo, quiero cambiar el resaltado de CursorLine en BusyBee.vim ..

~ / .vim / colors / BusyBee.vim

Creo el archivo ''~ / .vim / after / colors / BusyBee.vim'' y agrego esto:

hi CursorLine guibg=#000000 ctermbg=Black cterm=none

Sin embargo, no veo el cambio. Por supuesto, funciona si cambio la línea en el BusyBee.vim original, pero como dije, preferiría no hacerlo.

Obra...

:colo Busy<TAB>

Me muestra...

BusyBee BusyBee


Eche un vistazo a AfterColors.vim , le permitirá utilizar el método ~/.vim/after/colors/BusyBee.vim .


El archivo stock synload.vim en $VIM/vimXX/syntax/synload.vim hace un

runtime! syntax/syncolor.vim

Esto dirige a vim a leer la especificación de archivo dada en cada directorio de runtimepath . En los sistemas RedHat, el runtimepath será algo así como:

$HOIME/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/after,$HOME/.vim/after

Ponga sus ajustes de color en $HOME/.vim/after/syntax/syncolor.vim o en /usr/share/vim/vimfiles/after/syntax y debería estar listo.

Si bien sus ajustes pueden ser simples hi ... directivas, aparentemente es más complicado. Así que tomé mucho del archivo stock syncolor.vim y ahora tengo:

if !exists("syntax_cmd") || syntax_cmd == "on" " ":syntax on" works like in Vim 5.7: set colors but keep links command -nargs=* SynColor hi <args> command -nargs=* SynLink hi link <args> else if syntax_cmd == "enable" " ":syntax enable" keeps any existing colors command -nargs=* SynColor hi def <args> command -nargs=* SynLink hi def link <args> elseif syntax_cmd == "reset" " ":syntax reset" resets all colors to the default command -nargs=* SynColor hi <args> command -nargs=* SynLink hi! link <args> else " User defined syncolor file has already set the colors. finish endif endif " Change comment color from bright cyan to gray " The bold cyan conflicts with variables and other colors if &background == "dark" SynColor Comment term=bold cterm=NONE ctermfg=Gray ctermbg=NONE gui=NONE guifg=#80a0ff guibg=NONE endif delcommand SynColor delcommand SynLink


Me preguntaste qué busco hoy. Encontré una solución más simple que las presentadas aquí. Quiero un fondo transparente en lugar del fondo negro del tema, mientras que simplemente reemplazar el color después de que la declaración .vimrc en .vimrc no funcione e instalar un complemento solo para eso es extraño. Aquí esta lo que hice:

autocmd ColorScheme * highlight Normal ctermbg=None autocmd ColorScheme * highlight NonText ctermbg=None

¿Por qué funciona? Supongo que vim hace algo además de leer la declaración de colorscheme y cargar la declaración y luego leer la declaración de highlight y cambiar el color. De todos modos, parece que vim solo cambia el esquema de color después de leer los archivos de configuración. Así que proporciono un gancho, que cambiará los colores cada vez que se cambie la combinación de colores. Un efecto secundario agradable es que esto funciona incluso si cambia su esquema de color (podría hacer un bloque if si lo desea).


No tengo ''colorscheme BusyBee'' en mi .vimrc. Me gusta cambiar de colores de vez en cuando, así que quiero "arreglar" el tema real.

Se me ocurrió esta solución, no la más bonita, sino lo que sea.

function! FixColorscheme() " {{{ echo "fixing colorscheme" if has("gui_running") if (g:colors_name =~ "busybee") hi Folded guibg=#001336 guifg=#003DAD gui=none hi CursorLine guibg=#000000 ctermbg=Black cterm=none elseif (g:colors_name =~ "256-jungle") hi CursorLine guibg=#000000 ctermbg=Black cterm=none elseif (g:colors_name =~ "xoria256") hi Folded guibg=#001336 guifg=#003DAD gui=none cterm=none "hi Folded ctermbg=234 ctermfg=25 cterm=none endif elseif &t_Co == 256 if (g:colors_name =~ "busybee") hi Folded guibg=#001336 guifg=#003DAD gui=none hi CursorLine guibg=#000000 ctermbg=Black cterm=none elseif (g:colors_name =~ "256-jungle") hi CursorLine guibg=#000000 ctermbg=Black cterm=none elseif (g:colors_name =~ "xoria256") hi Folded ctermbg=234 ctermfg=25 cterm=none hi CursorLine cterm=none "else "hi CursorLine ctermbg=0 cterm=none endif endif endfunction " }}}

Ejecutarlo automáticamente al cambiar el esquema de color.

augroup mycolorschemes au! au ColorScheme * call FixColorscheme() augroup END

Y esto ayuda a cargar tu esquema favorito de la semana en el inicio. (eek !! el predeterminado!)

if iSFirstRun == 1 echo "HI" colo xoria256 call FixColors() endif

.. y esto en la parte superior de .vimrc

"" To let us set some settings only once. {{{ if exists("isRunning") let isFirstRun = 0 else let isFirstRun = 1 endif let isRunning = 1 " }}}

Tal vez ya hay algo para este ''isFirstRun''?


Poner

hi CursorLine guibg=#000000 ctermbg=Black cterm=none

despues de ti

colorscheme BusyBee

entrada en tu _vimrc.