Я часто желаю для изменения просто чего-то мало в системе цветов, но я не хочу редактировать исходный файл. Я пытался вставить свое изменение '~/.vim/after/colors/blah.vim', но это не работает на меня.
Пример, я хочу изменить выделение CursorLine в BusyBee.vim..
~/.vim/colors/BusyBee.vim
Я создаю файл '~/.vim/after/colors/BusyBee.vim' и добавляю это:
hi CursorLine guibg=#000000 ctermbg=Black cterm=none
Однако я не вижу изменения. Конечно, это работает, если бы я изменяю строку в originial BusyBee.vim, но как я сказал, что предпочел бы не делать это.
Выполнение...
:colo Busy<TAB>
Показывает мне...
BusyBee BusyBee
У меня нет цветовой схемы BusyBee в моем .vimrc. Мне нравится время от времени переключать цветовую схему, поэтому я хочу «исправить» саму тему.
Я придумал это решение, не самое красивое, но какое угодно.
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
" }}}
Запускать автоматически при изменении цветовой схемы.
augroup mycolorschemes
au!
au ColorScheme * call FixColorscheme()
augroup END
И это помогает загрузить вашу любимую схему недели при запуске. (ура !! по умолчанию!)
if iSFirstRun == 1
echo "HI"
colo xoria256
call FixColors()
endif
.. и это в самом верху .vimrc
"" To let us set some settings only once. {{{
if exists("isRunning")
let isFirstRun = 0
else
let isFirstRun = 1
endif
let isRunning = 1
" }}}
Может быть, уже есть что-то для этого 'isFirstRun'?
Поместите
hi CursorLine guibg=#000000 ctermbg=Black cterm=none
после записи
colorscheme BusyBee
в вашем _vimrc.