Система цветов переопределения

Я часто желаю для изменения просто чего-то мало в системе цветов, но я не хочу редактировать исходный файл. Я пытался вставить свое изменение '~/.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
24
задан Hannes 13 March 2010 в 21:43
поделиться

2 ответа

У меня нет цветовой схемы 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'?

4
ответ дан 28 November 2019 в 23:15
поделиться

Поместите

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

после записи

colorscheme BusyBee

в вашем _vimrc.

-4
ответ дан 28 November 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: