让gVim9.1打开时自动载入上次关闭时的所有标签页

使用 Vim 的内置会话管理(推荐)

Vim 有原生的会话管理功能,可以保存和恢复整个编辑环境,包括窗口布局、标签页、打开的文件等。

1. 手动保存和恢复会话

  • 保存当前会话

    vim
    :mksession! ~/mysession.vim

    ! 表示覆盖已存在的文件,~/mysession.vim 是会话文件的保存路径,可以自定义路径和名称。

  • 恢复会话

    vim
    :source ~/mysession.vim
    

配置自动保存和恢复会话

在 gVim 的配置文件(_vimrc 或 .vimrc)中添加以下代码:
vim
" 定义会话文件路径(可自定义,如 ~/.vim/session.vim)
let g:session_file = $HOME . '/.vim/session.vim'

" 确保会话文件目录存在
if !isdirectory(fnamemodify(g:session_file, ':h'))
    call mkdir(fnamemodify(g:session_file, ':h'), 'p')
endif

" 关闭 gVim 时自动保存会话(包括标签页、窗口等状态)
autocmd VimLeave * call SaveSession()

" 启动 gVim 时自动恢复会话(若会话文件存在)
autocmd VimEnter * call LoadSession()

" 保存会话的函数
function! SaveSession()
    " 忽略空会话(如仅打开 gVim 未编辑文件时)
    if len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 0
        return
    endif
    " 保存会话到指定文件
    execute 'mksession! ' . g:session_file
endfunction

" 恢复会话的函数
function! LoadSession()
    if filereadable(g:session_file)
        execute 'source ' . g:session_file
    endif
endfunction

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部
×
问题求助