ホーム > vim > Vimでシステム開発 — セッションとviminfo

Vimでシステム開発 — セッションとviminfo

2009 年 5 月 17 日 コメントをどうぞ コメント

起動すると前回閉じるときの状態、例えばレイアウト、開いたファイルと設定などを自動的に戻す、このような機能を持つソフトウェアが多いです。では、Vimはこの機能がありますか?

勿論あります。Vimはセッション、及びviminfoで状態を保存します。
セッションとviminfoは、今回使っているVimのあらゆる情報を持ちます。Vimはこれらの情報を保存し、次回Vimを起動後、今回と同じ編集環境に戻れます。保存できる情報は開いたファイル、バインド関係、略語、ブックマーク、各種設定など色々あります。

前回の編集環境に戻るため、2種類の情報が必要です。一つはセッション、もう一つはviminfo。
セッション:ウィンドーのレイアウト、グローバル設定を持ちます。
viminfo:コマンド ヒストリ、検索ヒストリ、入力行ヒストリ、空でないレジストリの内容、ブックマーク、バッファ、直近の検索/置換えパターン、グローバル変数などを持ちます。

 

  • セッション

:mksession [file] コマンドで、セッションファイルを作成します。ファイル名を省略すれば、Session.vimというファイルが作成されます。このセッションファイルは、実はVimのスクリプトが入ったファイルです。上記コマンドでファイルを作成して見れば分かると思います。

セッションファイルが保存する内容は「sessionoptions」オプションが設定します。デフォルトは 「blank,buffers,curdir,folds,help,options,tabpages,winsize」です。内容は「空ウィンドー、 全てのバッファー、作業フォルダ、折畳み情報、ヘルプウィンドー、全てのオプション、全てのタブ、ウィンドーのサイズ」。

例えば、Windows版Vimが作成したセッションファイルを、LinuxとUnix版のVimでも使いたい場合、「sessionoptions」に 「slash」と「unix」オプションを入れればいいです。「slash」は、ファイル名の「\」を「/」に置換え、「unix」は改行をunix形式 で保存します。

先程「mksession」コマンドで作ったセッションファイルの使い方は簡単です、「source {file}」コマンドでファイルをインポートだけで結構です。セッションファイルの中身はVimスクリプトなので、「source」コマンドは保存され たスクリプトを一回実行するわけです。

 

  • viminfo

:wviminfo [file] で手動でviminfoファイルを作れます。

実は、Vimを閉じるとき、Vimは自動的に.viminfoファイルをユーザのホームフォルダに作成します。閉じるたび、デフォルトの.viminfo ファイルは更新されるため、場合によっては「wviminfo」コマンドで手動でviminfoファイルを保存したいケースがあります。

「wviminfo」コマンドが保存する内容と数は、「viminfo」オプションが決めます。WindowsとLinux上の「viminfo」のデフォルト値が違います、ヘルプを参考してください。

保存されたviminfoファイルを読み込むには、:rviminfo [file] コマンドを使います。

 

  • 簡単な例

簡単な例として、私の今の編集環境を保存します。
:mksession my.vim       ’セッションを保存
:wviminfo my.viminfo    ’viminfoを保存
:qa                     ’Vimを終了

その後、戻って再度Vimを起動しますと、空のVimウィンドーが出ます。下記コマンドを実行することで、前回の作業状態に戻ります。
:source ~/my.vim
:rviminfo ~/my.viminfo

よし、戻りました!引き続き作業をしよう~~~

 

関連ヘルプ

:help mksession 
:help ’sessionoptions’ 
:help source 
:help wviminfo 
:help rviminfo 
:help ’viminfo 
Share and Enjoy:
  • del.icio.us
  • Google Bookmarks
  • Facebook
  • FriendFeed
  • Twitter
カテゴリー: vim タグ: , ,
  1. コメントはまだありません。
  1. トラックバックはまだありません。