Vimでシステム開発
蒋 いつ峰 2008/06/12   |  開発色々
2.セッションとviminfo 2008/06/12  |  PK:viminfo セッション

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

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

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


1.「セッション」
: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」コマンドは保存されたスクリプトを一回実行するわけです。


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

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

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

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


3.簡単な例
簡単な例として、私の今の編集環境を保存します。
: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

 


閲覧  |  コメント  |  目次

 
ヘルプ  |  ご利用規約  |  相互リンク  |  問合せ
リンクはご自由に、問合せはお気軽に
©2007 Uprush