Home > Vim Hacks > Hack #120: gVim でウィンドウの位置とサイズを記憶する

Hack #120: gVim でウィンドウの位置とサイズを記憶する

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 するだけで位置とサイズが復元されます。

thinca

Comments:0

Comment Form
Remember personal info

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

Home > Vim Hacks > Hack #120: gVim でウィンドウの位置とサイズを記憶する

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • プラグイン
  • vimrc
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top