Я вижу, что когда я использую mksession, он записывает файл для сохранения сессии. Файл выглядит нормально и сессия загружается нормально. Но это меняет мою цветовую схему, когда я загружаю сессию именно so . После открытия сессии цветовая схема является другой. Что это может быть? Почему я не могу восстановить свою сессию?

1 ответ1

1

@itun Поведение по умолчанию для сеансов VIM заключается в том, что оно не сохраняет цветовую схему. Хотя я уверен, что для этого есть веская причина, я не уверен, что это такое.

Я также столкнулся с той же ситуацией и написал пару функций VIM и команду VIM, чтобы получить поведение, о котором вы говорите (на самом деле нужно всего лишь избавиться от:colorscheme colors_name).


" ===========================================================================
function! Mksession(...) " {{{
" Intercept the mksession built-in, so that we can append the current
" colorscheme to the setup as well.
" ---------------------------------------------------------------------------
"  call Dfunc("Mksession()")

" if argc() > 2 " echohl ErrorMsg " echo "Command takes only 2 arguments, extra arguments ignored!" " echohl None " endif

" call Decho("a:0=<".a:0.">") " call Decho("a:1=<".a:1.">") " call Decho("a:2=<".a:2.">") " If no overwrite flag is supplied, assume no overwrite if a:1 == "" let l:overwrite = 0 elseif a:1 == "!" let l:overwrite = 1 endif

" If no session name is supplied, default to Session.vim in the current working directory if !exists("a:2") || a:2 == "" " if !exists("l:sessionname") || l:sessionname == "" let l:sessionname = "Session.vim" else let l:sessionname = a:2 endif

" call Decho("sessionname=<".l:sessionname.">") " call Decho("overwrite=<".l:overwrite.">")

if l:overwrite == 0 exe "mksession ".l:sessionname else exe "mksession! ".l:sessionname endif silent exe '!echo colorscheme '.g:colors_name.' >> '.l:sessionname

" call Dret("Mksession") endfunction " Nodiff com! -nargs=+ -bang -complete=command Mks call Mksession("",) cmap mks Mks cmap mksession Mks " }}}

Это создаст команду пользователя VIM, чтобы обернуть встроенную (:Mks), а также добавит аббревиатуры командного режима, чтобы расширить встроенную команду для использования новой версии команды пользователя.

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .