我的 Vim 有個功能,是某次在觀摩別人的 vimrc 找到的:
按下指定的快捷鍵,就能把當下的 session 存下來。
重新開啟 Vim 之後,只要載入這個 session 就可以回復原本開啟的檔案們,甚至連 layout 都可以還原。
config 的設定如下:
nnoremap <F2> :mksession! ~/.vim_manual_session.vim <CR>
nnoremap <F3> :source ~/.vim_manual_session.vim <CR>
快捷鍵我習慣用 F2, F3,前者用來儲存,後者用來讀取。
後面的 ~/.vim_manual_session.vim
則是用來記錄 session 的檔案,所以如果有需求的話,可以寫寫 vim script 讓他變成 ~/.vim_manual_session_1.vim
、~/.vim_manual_session_2.vim
之類有 ID 的形式。
有些人可能會注意到「欸?有 manual?那是不是有 auto?」。
嗯沒錯,auto 的設定也蠻簡單的:
" key binding
nnoremap <F4> :source ~/.vim_auto_session.vim <CR>
" auto script
autocmd VimLeave * mksession! ~/.vim_auto_session.vim
" autocmd VimEnter * source ~/.vim_auto_session.vim
前半部是設定 F4 為讀取自動儲存的快捷鍵,後半部則有兩個 script:
- 前者是「在離開 Vim 時,自動幫我產生
~/.vim_auto_session.vim
進行 session 存檔。」 - 後者則是「在進入 Vim 時,自動幫我讀取
~/.vim_auto_session.vim
這個檔案,回復上次離開前的狀態。」
我自己是不太喜歡自動回復,感覺太自動了。但作為不小心誤關 Vim 的保險,自動在離開時儲存倒是可以開著。
這些功能我在爬文的時候也有看到有人做成 plugin,但我沒有試過,如果有興趣的可以嘗試看看: autosess: auto save/load sessions
其他連結
- 本站其他和 Vim 相關的文章: vim
- How to save window, split, and buffer layout?
- www.vim.tw
- Vim Taiwan 的 telegram group: http://t.me/vim_tw