<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>uprush &#187; viminfo</title>
	<atom:link href="http://uprush.net/tag/viminfo/feed/" rel="self" type="application/rss+xml" />
	<link>http://uprush.net</link>
	<description>YiFeng's Blog</description>
	<lastBuildDate>Wed, 03 Feb 2010 14:34:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vimでシステム開発 &#8212; セッションとviminfo</title>
		<link>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a8viminfo/</link>
		<comments>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a8viminfo/#comments</comments>
		<pubDate>Sun, 17 May 2009 07:23:40 +0000</pubDate>
		<dc:creator>uprush</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[viminfo]]></category>

		<guid isPermaLink="false">http://blog.uprush.net/?p=218</guid>
		<description><![CDATA[起動すると前回閉じるときの状態、例えばレイアウト、開いたファイルと設定などを自動的に戻す、このような機能を持つソフトウェアが多いです。では、Vimはこの機能がありますか？
勿論あります。Vimはセッション、及びviminfoで状態を保存します。
セッションとviminfoは、今回使っているVimのあらゆる情報を持ちます。Vimはこれらの情報を保存し、次回Vimを起動後、今回と同じ編集環境に戻れます。保存できる情報は開いたファイル、バインド関係、略語、ブックマーク、各種設定など色々あります。
前回の編集環境に戻るため、２種類の情報が必要です。一つはセッション、もう一つはviminfo。
セッション：ウィンドーのレイアウト、グローバル設定を持ちます。
viminfo：コマンド ヒストリ、検索ヒストリ、入力行ヒストリ、空でないレジストリの内容、ブックマーク、バッファ、直近の検索/置換えパターン、グローバル変数などを持ちます。

&#160;

セッション

: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」コマンドは保存され たスクリプトを一回実行するわけです。
&#160;

viminfo

:wviminfo [file] で手動でviminfoファイルを作れます。
実は、Vimを閉じるとき、Vimは自動的に.viminfoファイルをユーザのホームフォルダに作成します。閉じるたび、デフォルトの.viminfo ファイルは更新されるため、場合によっては「wviminfo」コマンドで手動でviminfoファイルを保存したいケースがあります。
「wviminfo」コマンドが保存する内容と数は、「viminfo」オプションが決めます。WindowsとLinux上の「viminfo」のデフォルト値が違います、ヘルプを参考してください。
保存されたviminfoファイルを読み込むには、:rviminfo [file] コマンドを使います。
&#160;

簡単な例

簡単な例として、私の今の編集環境を保存します。
:mksession my.vim&#160;&#160;&#160;&#160;&#160;&#160; &#8217;セッションを保存
:wviminfo my.viminfo&#160;&#160;&#160; &#8217;viminfoを保存
:qa&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8217;Vimを終了
その後、戻って再度Vimを起動しますと、空のVimウィンドーが出ます。下記コマンドを実行することで、前回の作業状態に戻ります。
:source ~/my.vim
:rviminfo ~/my.viminfo
よし、戻りました！引き続き作業をしよう～～～
&#160;
関連ヘルプ

:help&#160;mksession&#160;
:help&#160;&#8217;sessionoptions&#8217;&#160;
:help&#160;source&#160;
:help&#160;wviminfo&#160;
:help&#160;rviminfo&#160;
:help&#160;&#8217;viminfo&#160;

:help mksession :help &#8217;sessionoptions&#8217; :help source :help wviminfo :help rviminfo :help &#8217;viminfo


:help mksession   :help &#8217;sessionoptions&#8217;   :help source   :help wviminfo   :help rviminfo   :help &#8217;viminfo

:help mksession [...]]]></description>
		<wfw:commentRss>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a8viminfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
