session.vimを使う
Intro
session.vim : Extended session management for Vim
http://www.vim.org/scripts/script.php?script_id=3150
Sessionを保存、起動時にSessionを読み込むことが出来るプラグインの設定
(要は前回の終了時に戻したり、好きな状態に戻せるということ)
[gvim起動時にSessionで復元した画面]
* どうでもいいことだけど、gvimのiconは気分転換に化け猫屋の素材に変えているので違うiconになってます。
Contents
1. PluginをDownloadしてくる
2. 各自のruntimepathの通った場所に放り込む(一般的には、runtimeフォルダ以下?かな)
[g:session_directory]を設定しない場合のデフォルト値は下記のとおり
vimrcで環境設定(iicebar version)
(2010/11/07 AM5:49)動作が気に入らなかったので、終了時の動作を変更できるようにした。
" ↓新規変数を追加 let g:session_directory = "Sessionの保存先" " 設定するかどうかは任意 let g:session_winsize_not_remember = 1 "Windowサイズを覚えない:1 覚える:0 let g:session_vimstartup_columns = 100 "列 let g:session_vimstartup_lines = 50 "行 function! ExitVimFuncSession() if g:session_winsize_not_remember == 1 " 前回終了時のWindowsサイズではなく、幅、高さを固定値で起動する execute "set columns=" . expand(g:session_vimstartup_columns) execute "set lines=" . expand(g:session_vimstartup_lines) endif SaveSession endfunction command! ExitVimFuncSession call ExitVimFuncSession() " 引数を指定しなかった時のみ、Sessionを有効にする if argc() == 0 " 起動時にSessionを読み込む let g:session_autoload = 1 " Sessionファイル名を聞かず勝手に読み書きする let g:session_autosave = 1 augroup MySession " Vim終了時にSassionを保存する au VimLeave * ExitVimFuncSession augroup END else " 明示的に無効にする let g:session_autoload = 0 let g:session_autosave = 0 endif
これだけで、前回終了時の状態を簡単に復元できる。
また、上記設定だとdefault.vimという名前でSessionが保存される。1つ目のvim起動時はSessionが読み込まれて、2つ目のvim起動時ファイル無しでも読み込まれない。…あれ?矛盾してる。実は既に実装されてて↑の記述で要らないのがあったかもしれない、ちょっと見ておこう…。(2010/11/07 PM17:00)追記
Comment
- 実は触り始めてまだ
30分だけど、良さそうだと思ったのでついカッとなって紹介した。
(これ書いて修正してるうちに数時間ほど使用してた。) - 間違えてる箇所があればご指摘ください。