- 2010-01-28 (木) 0:00
- Vim Hacks
GUI アプリケーションではよく終了時にウィンドウの位置とサイズを記憶し、次回起動時に復元するものを見かけます。Vim でも設定次第で同様のことが可能です。
設定
.gvimrc に以下のように書きます。
let g:save_window_file = expand('~/.vimwinpos')
augroup SaveWindow
autocmd!
autocmd VimLeavePre * call s:save_window()
function! s:save_window()
let options = [
\ 'set columns=' . &columns,
\ 'set lines=' . &lines,
\ 'winpos ' . getwinposx() . ' ' . getwinposy(),
\ ]
call writefile(options, g:save_window_file)
endfunction
augroup END
if filereadable(g:save_window_file)
execute 'source' g:save_window_file
endif
解説
g:save_window_file
この変数で指定するファイルにウィンドウの位置やサイズを保存します。expand() は ~ を $HOME に展開するのに必要で、その必要がない場合はなくても問題ありません。
設定の書き出し
augroup SaveWindow 〜 augroup END で、Vim の終了時に発生するイベントを登録しています。
ここでは Vim の終了時に s:save_window() と言う関数を呼ぶようにしています。そしてこの関数のなかで、g:save_window_file にウィンドウの位置とサイズの情報を Vim スクリプトの形式で書き出しています。
設定の読み出し
最後の if でウィンドウ情報ファイルが存在するかをチェックし、存在した場合はそのファイルを :source で読み込みます。情報ファイルは Vim スクリプトとして書き出されているので、:source するだけで位置とサイズが復元されます。
- Newer: Vim勉強会#5 ujihisa発表資料
- Older: Hack #119: neocomplcache Hacks(2) オムニ補完
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://vim-users.jp/2010/01/hack120/trackback/
- Listed below are links to weblogs that reference
- Hack #120: gVim でウィンドウの位置とサイズを記憶する from Vim-users.jp

