Я вижу, что когда я использую mksession, он записывает файл для сохранения сессии. Файл выглядит нормально и сессия загружается нормально. Но это меняет мою цветовую схему, когда я загружаю сессию именно so
. После открытия сессии цветовая схема является другой. Что это может быть? Почему я не могу восстановить свою сессию?
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), а также добавит аббревиатуры командного режима, чтобы расширить встроенную команду для использования новой версии команды пользователя.
Надеюсь, это поможет.