<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Free Writing</title>
	
	<link>http://www.ispern.com</link>
	<description>気の向くままに書きますよー</description>
	<lastBuildDate>Wed, 21 Jul 2010 15:26:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ispern/feed" /><feedburner:info uri="ispern/feed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Sencha Touchメモ – Ext.TabPanel -</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/cqO8ycesvM0/</link>
		<comments>http://www.ispern.com/?p=489#comments</comments>
		<pubDate>Wed, 21 Jul 2010 12:20:40 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=489</guid>
		<description><![CDATA[Sencha Touch をちまちま触っています。
Sencha Touch を始めようや Sencha Touch Examples を参考に、いろいろとAPIを試している所です。
少しずつ覚えた事を載せていければな～と思います。
まずは、Ext.TabPanelです。
ソースコード

Ext.setup({

	// onReady
	onReady: function() {
		new Ext.TabPanel({
			fullscreen: true,

			// TabBarの設定
			tabBar: {

				// タブを上部に配置
				dock: 'top',

				// スタイル設定
				ui: 'dark',

				layout: {

					// タブを中央寄せ
					pack: 'center'
				}
			},

			// Tab切り替えのアニメーション
			animation: 'slide',

			// 各Panelのデフォルト値設定
			defaults: {

				// スクロールを縦スクロール
				scroll: 'vertical'
			},
			items: [{
				title: 'About',
				html: '
About Page

',
				iconCls: 'info',
				cls: 'card1'
			},{
				title: 'User',
				iconCls: 'user',
				html: '
User Page

',
				cls: 'card2'
			}]
		});
	}
});

プロパティの説明
上記サンプルのTabPanelで使ったプロパティです。
tabBar プロパティでタブの設定、animation プロパティでタブ切り替えのアニメーション、
items プロパティで表示するコンポーネントをそれぞれ指定しています。
Ext.TabPanelのプロパティ


プロパティ
説明


tabBar
Ext.TabBarのプロパティをオブジェクトリテラルで指定する。
      ※下記、Ext.TabBarのプロパティを参照。


tabBarPosition

			タブを配置する場所を指定する。
			指定できる値は &#8216;top&#8217; , &#8216;bottom&#8217;
		  ※&#8217;left&#8217; , [...]]]></description>
			<content:encoded><![CDATA[<p>Sencha Touch をちまちま触っています。<br />
<a href="http://extjs.co.jp/deploy/touch/getting-started.html" target="_blank">Sencha Touch を始めよう</a>や <a href="http://labs.hinterlands.com.au/testing/sencha/examples/" target="_blank">Sencha Touch Examples</a> を参考に、いろいろとAPIを試している所です。</p>
<p>少しずつ覚えた事を載せていければな～と思います。</p>
<p>まずは、Ext.TabPanelです。</p>
<h3 class="h">ソースコード</h3>
<pre class="brush: js;">
Ext.setup({

	// onReady
	onReady: function() {
		new Ext.TabPanel({
			fullscreen: true,

			// TabBarの設定
			tabBar: {

				// タブを上部に配置
				dock: 'top',

				// スタイル設定
				ui: 'dark',

				layout: {

					// タブを中央寄せ
					pack: 'center'
				}
			},

			// Tab切り替えのアニメーション
			animation: 'slide',

			// 各Panelのデフォルト値設定
			defaults: {

				// スクロールを縦スクロール
				scroll: 'vertical'
			},
			items: [{
				title: 'About',
				html: '
<h1>About Page</h1>

',
				iconCls: 'info',
				cls: 'card1'
			},{
				title: 'User',
				iconCls: 'user',
				html: '
<h1>User Page</h1>

',
				cls: 'card2'
			}]
		});
	}
});
</pre>
<h3 class="h">プロパティの説明</h3>
<p>上記サンプルのTabPanelで使ったプロパティです。<br />
tabBar プロパティでタブの設定、animation プロパティでタブ切り替えのアニメーション、<br />
items プロパティで表示するコンポーネントをそれぞれ指定しています。</p>
<h4 class="h">Ext.TabPanelのプロパティ</h4>
<table class="inline">
<tr>
<th width="100px">プロパティ</th>
<th width="400px">説明</th>
</tr>
<tr>
<td>tabBar</td>
<td>Ext.TabBarのプロパティをオブジェクトリテラルで指定する。<br />
      ※下記、Ext.TabBarのプロパティを参照。</td>
</tr>
<tr>
<td>tabBarPosition</td>
<td>
			タブを配置する場所を指定する。<br />
			指定できる値は &#8216;top&#8217; , &#8216;bottom&#8217;<br />
		  ※&#8217;left&#8217; , &#8216;right&#8217; も指定できるけど、とりあえず動くという感じ。
		</td>
</tr>
<tr>
<td>ui</td>
<td>
			タブのテーマを指定。<br />
			指定できる値は &#8216;light&#8217; , &#8216;dark&#8217; , &#8216;metal&#8217;
		</td>
</tr>
<tr>
<td>animation</td>
<td>タブを切り替えるときのアニメーションを指定。<br />
      指定できるアニメーションは、 &#8216;fade&#8217; , &#8217;slide&#8217; , &#8216;flip&#8217; , &#8216;cube&#8217; , &#8216;pop&#8217; , &#8216;wipe&#8217;。<br />
      kitchensinkのアニメーションで動きを確認できる。</td>
</tr>
<tr>
<td>sortable</td>
<td>true にすると、タブをホールドしてドラッグすることができる。</td>
</tr>
<tr>
<td>activeItem</td>
<td>初期表示でアクティブにするコンポーネントを items のインデックスで指定する。</td>
</tr>
<tr>
<td>items</td>
<td>表示するコンポーネントを配列で指定。</td>
</tr>
</table>
<h4 class="h">Ext.TabBarのプロパティ</h4>
<table class="inline">
<tr>
<th width="100px">プロパティ</th>
<th width="400px">説明</th>
</tr>
<tr>
<td>dock</td>
<td>Ext.TabPanel の tabBarPosition と同様。</td>
</tr>
<tr>
<td>layout</td>
<td>Ext.TabBarのレイアウトの設定。<br />
      上記サンプルコードでは、pack プロパティでタブの配置位置を指定している。<br />
      &#8217;start&#8217; , &#8216;center&#8217; , &#8216;end&#8217;を指定できる。</td>
</tr>
<tr>
<td>ui</td>
<td>
		  Ext.TabPanel の ui と同様。
	  </td>
</tr>
<tr>
<td>sortHoldThreshold</td>
<td>タブのホールド時間をミリ秒で指定する。指定した時間の間、タブをホールドすると、ドラッグ可能になる。<br />
			デフォルトは300ミリ秒。</p>
</td>
</tr>
</table>
<h3 class="h">実行</h3>
<p>
以下のリンクからサンプルを実行できます。<br />
Firefoxだとレイアウトがかなり崩れますが、Google Chromeだと綺麗に見れます。<br />
<a href="http://www.ispern.com/Examples/html/mobile/TopTab.html" target="_blank">dock が top の場合</a><br />
<a href="http://www.ispern.com/Examples/html/mobile/BottomTab.html" target="_blank">dock が bottom の場合</a><br />
<a href="http://www.ispern.com/Examples/html/mobile/BottomTab.html" target="_blank"></a>
</p>
<p>
jsdo.itにも載せてみました。<br />
<a href="http://jsdo.it/ispern/xbzz" target="_blank">Sencha Touch &#8211; Ext.TabPanel &#8211; - jsdo.it</a>
</p>
<h3 class="h">使ったAPIのリンク</h3>
<p><a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.TabPanel" target="_blank">Sencha Touch API Documentation &#8211; Ext.TabPanel -</a><br />
<a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.TabBar" target="_blank">Sencha Touch API Documentation &#8211; Ext.TabBar -</a><br />
<a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.Panel" target="_blank">Sencha Touch API Documentation &#8211; Ext.Panel -</a><br /></p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/cqO8ycesvM0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=489</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=489</feedburner:origLink></item>
		<item>
		<title>Sencha Touchを試してみた</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/TW0ujCbEjJM/</link>
		<comments>http://www.ispern.com/?p=471#comments</comments>
		<pubDate>Sat, 26 Jun 2010 01:00:55 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=471</guid>
		<description><![CDATA[先週ですが、Sencha Touchのベータ版がリリースされましたね。
Introducing Sencha Touch: HTML5モバイル用フレームワーク
先週の2つの発表（SenchaとSencha Touch）の件について
ということで早速、触ってみました。
Hello Worldが表示される簡単なページを作りました。
下の様な画面です。

ソースコード

Ext.setup({
	// apple-mobile-web-app-capableの設定
	fullscreen: true,

	// ホーム画面に登録された場合のアイコン設定
	icon: 'icon.png',

	// iPadからアクセスした場合のスプラッシュ画像
	tabletStartupScreen: 'tablet_startup.png',

	// iPhoneからアクセスした場合のスプラッシュ画像
	phoneStartupScreen: 'phone_startup.png',

	// アイコンの光沢効果を無効
	glossOnIcon: false,

	// ステータスバーを半透明表示
	statusBarStyle: 'black-translucent',

	// onReady
	onReady: function() {
		new Ext.Panel({
			fullscreen: true,
			html: 'Hello Sencha Touch',
			dockedItems: [{
				xtype: 'toolbar',
				ui: 'dark',
				dock: 'top',
				items: [{
					xtype: 'button',
					text: 'Back',
					ui: 'green'
				}]
			}]
		});
	}
});

サンプルではExt.setupでページの起動設定、onReadyプロパティではExt.Panelを生成しています。
サンプルを実行
Ext.setup
Ext.setupはページの起動設定をするメソッドです。以下のプロパティが指定できます。
（試しながら確認したのでたぶんあっているハズ･･･）

fullscreen：trueにすると、apple-mobile-web-app-capableが有効になる。
tableStartupScreen：フルスクリーン表示時のスプラッシュ画像を指定。iPad用。
phoneStartupScreen：フルスクリーン表示時のスプラッシュ画像を指定。iPhoneやiPod Touch用
statusBarStyle：フルスクリーン表示のときのステータスバー（時計とかバッテリーとか表示されているバー）の表示を指定。&#8221;black&#8221;（黒）と&#8221;black-translucent&#8221;（半透明）が指定できる。
icon：ページをホーム画面に追加したときのアイコンを指定。このプロパティで設定されたアイコンはデバイス共通で使用される。
tabletIcon：iPad用のアイコン設定
phoneIcon：iPhone、iPod Touch、Android用のアイコン設定
glossOnIcon：アイコンに光沢効果を適用するか
preloadImages：事前にキャッシュしておきたい画像ファイルを配列で指定
onReady：セットアップ完了後に実行される関数
scope：onReadyの実行スコープ

所感
簡単にモバイル用のページが作れるのが、単純に楽しいです。
ネイティブアプリの知識なくてもSencha Touchを使えば、
基本的なHTMLやJavaScript、CSSの知識だけで
ネイティブアプリちっくなページが作れるなぁと。
Ext Japanのブログで、Sencha Touch を始めようが公開されているので
次はこれを試してみます。
]]></description>
			<content:encoded><![CDATA[<p>先週ですが、Sencha Touchのベータ版がリリースされましたね。</p>
<p><a href="http://www.extjs.co.jp/blog/2010/06/18/introducing-sencha-touch-html5-mobile-framework/" target="_blank">Introducing Sencha Touch: HTML5モバイル用フレームワーク</a><br />
<a href="http://www.extjs.co.jp/blog/2010/06/21/about-sencha-and-senchatouch/" target="_blank">先週の2つの発表（SenchaとSencha Touch）の件について</a></p>
<p>ということで早速、触ってみました。<br />
Hello Worldが表示される簡単なページを作りました。<br />
下の様な画面です。</p>
<p><a href="http://www.flickr.com/photos/44923983@N02/4734901788/" target="_blank"><img src="http://farm2.static.flickr.com/1006/4734901788_aa1f8990d5_m.jpg" style="border: 1px solid black;" width="160" height="240" /></a></p>
<h3 class="h">ソースコード</h3>
<pre class="brush: jscript;">
Ext.setup({
	// apple-mobile-web-app-capableの設定
	fullscreen: true,

	// ホーム画面に登録された場合のアイコン設定
	icon: 'icon.png',

	// iPadからアクセスした場合のスプラッシュ画像
	tabletStartupScreen: 'tablet_startup.png',

	// iPhoneからアクセスした場合のスプラッシュ画像
	phoneStartupScreen: 'phone_startup.png',

	// アイコンの光沢効果を無効
	glossOnIcon: false,

	// ステータスバーを半透明表示
	statusBarStyle: 'black-translucent',

	// onReady
	onReady: function() {
		new Ext.Panel({
			fullscreen: true,
			html: 'Hello Sencha Touch',
			dockedItems: [{
				xtype: 'toolbar',
				ui: 'dark',
				dock: 'top',
				items: [{
					xtype: 'button',
					text: 'Back',
					ui: 'green'
				}]
			}]
		});
	}
});
</pre>
<p>サンプルではExt.setupでページの起動設定、onReadyプロパティではExt.Panelを生成しています。</p>
<p><a href="http://www.ispern.com/Examples/html/mobile/Panel.html" target="_blank">サンプルを実行</a></p>
<h4 class="h">Ext.setup</h4>
<p>Ext.setupはページの起動設定をするメソッドです。以下のプロパティが指定できます。<br />
（試しながら確認したのでたぶんあっているハズ･･･）</p>
<ul>
<li><strong>fullscreen</strong>：trueにすると、apple-mobile-web-app-capableが有効になる。</li>
<li><strong>tableStartupScreen</strong>：フルスクリーン表示時のスプラッシュ画像を指定。iPad用。</li>
<li><strong>phoneStartupScreen</strong>：フルスクリーン表示時のスプラッシュ画像を指定。iPhoneやiPod Touch用</li>
<li><strong>statusBarStyle</strong>：フルスクリーン表示のときのステータスバー（時計とかバッテリーとか表示されているバー）の表示を指定。&#8221;black&#8221;（黒）と&#8221;black-translucent&#8221;（半透明）が指定できる。</li>
<li><strong>icon</strong>：ページをホーム画面に追加したときのアイコンを指定。このプロパティで設定されたアイコンはデバイス共通で使用される。</li>
<li><strong>tabletIcon</strong>：iPad用のアイコン設定</li>
<li><strong>phoneIcon</strong>：iPhone、iPod Touch、Android用のアイコン設定</li>
<li><strong>glossOnIcon</strong>：アイコンに光沢効果を適用するか</li>
<li><strong>preloadImages</strong>：事前にキャッシュしておきたい画像ファイルを配列で指定</li>
<li><strong>onReady</strong>：セットアップ完了後に実行される関数</li>
<li><strong>scope</strong>：onReadyの実行スコープ</li>
</ul>
<h4 class="h">所感</h4>
<p>簡単にモバイル用のページが作れるのが、単純に楽しいです。</p>
<p>ネイティブアプリの知識なくてもSencha Touchを使えば、<br />
基本的なHTMLやJavaScript、CSSの知識だけで<br />
ネイティブアプリちっくなページが作れるなぁと。</p>
<p>Ext Japanのブログで、<a href="http://extjs.co.jp/deploy/touch/getting-started.html" target="_blank">Sencha Touch を始めよう</a>が公開されているので<br />
次はこれを試してみます。</p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/TW0ujCbEjJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=471</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=471</feedburner:origLink></item>
		<item>
		<title>xtypeにcontainerを指定した場合の描画速度</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/jD5YKVRhhkU/</link>
		<comments>http://www.ispern.com/?p=453#comments</comments>
		<pubDate>Thu, 27 May 2010 17:57:45 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=453</guid>
		<description><![CDATA[先週、ExtJS勉強会 に行ってきました。
その中で小堤さんがパフォーマンス向上のテクニックについて
紹介されていたのでそれを試してみました。
内容は･･･
大枠のパネルの中にカラムレイアウトなどでテキストフィールドとか
フォームのアイテムのレイアウトを行う場合は、&#8221;container&#8221;を指定すると
パフォーマンスが向上する
という内容です。
詳しい内容については、小堤さんのブログで紹介されています。
サンプルソース
ソースは、フォームレイアウトの中にfieldsetを入れて、
さらにカラムレイアウトの中にテキストフィールドを4つ入れたセットを100個配置しているサンプルです。
それぞれ、カラムレイアウトとフォームレイアウトにcontainerを指定する場合と指定しない場合での
描画時間をアラートで表示します。
時間測定ってこんなので良いのだろうか･･･。

Ext.onReady(function() {
	Ext.BLANK_IMAGE_URL = 'http://extjs.cachefly.net/ext-3.2.0/resources/images/default/s.gif';
	Ext.QuickTips.init();

	var start = new Date().getTime();

	var form = new Ext.Panel({
		renderTo: Ext.getBody(),
		title: 'FormPanel - Speed Test2 -',
		layout: 'form',
		width: 800,
		height: 600,
		padding: '20',
		autoScroll: true,
		items: [{
			xtype: 'fieldset',
			title: 'fieldset',
			items: [{
				layout: 'column',
				xtype: 'container',
				items: [{
					columnWidth: '.50',
					layout: 'form',
					xtype: 'container',
					items:[{
						xtype: 'textfield',
						fieldLabel: 'Sample1'
					},{
						xtype: 'textfield',
						fieldLabel: 'Sample2'
					}]
				},{
					columnWidth: '.50',
					layout: 'form',
					xtype: 'container',
					items:[{
						xtype: 'textfield',
						fieldLabel: 'Sample3'
					},{
						xtype: 'textfield',
						fieldLabel: 'Sample4'
					}]
				}]
			}]
		}

		・
		・
		・

	});

	var end = new Date().getTime();
	alert((end-start)/1000);
});

実行結果
containerを指定しない場合
containerを指定した場合
※ブラウザが固まるので注意して下さい！！
Core2 2.0GHzのchromeで7秒くらい違いました。
フィールドを100個も配置する様な画面は無いと思いますが。。。
IE6とか遅い環境だともっと早くなるでしょうね。
それよりもなによりも、ボーダーとか背景とか無駄な描画がされないことが嬉しいです。
フォームアイテムのレイアウトに限らず、Panelの中にPanelを入れたりする場合は多々あるので、
その時にボーダーが重なったりしないのは嬉しいです。
まさに一石二鳥。
]]></description>
			<content:encoded><![CDATA[<p>先週、<a href="http://extjs.co.jp/blog/2010/05/12/tokyo-meetup-may-2010/" target="_blank">ExtJS勉強会</a> に行ってきました。<br />
その中で小堤さんがパフォーマンス向上のテクニックについて<br />
紹介されていたのでそれを試してみました。</p>
<p>内容は･･･</p>
<p>大枠のパネルの中にカラムレイアウトなどでテキストフィールドとか<br />
フォームのアイテムのレイアウトを行う場合は、&#8221;container&#8221;を指定すると<br />
パフォーマンスが向上する</p>
<p>という内容です。</p>
<p>詳しい内容については、<a href="http://code.xenophy.com/?p=919" target="_blank">小堤さんのブログ</a>で紹介されています。</p>
<h3 class="h">サンプルソース</h3>
<p>ソースは、フォームレイアウトの中にfieldsetを入れて、<br />
さらにカラムレイアウトの中にテキストフィールドを4つ入れたセットを100個配置しているサンプルです。<br />
それぞれ、カラムレイアウトとフォームレイアウトにcontainerを指定する場合と指定しない場合での<br />
描画時間をアラートで表示します。<br />
時間測定ってこんなので良いのだろうか･･･。</p>
<pre class="brush: jscript;">
Ext.onReady(function() {
	Ext.BLANK_IMAGE_URL = 'http://extjs.cachefly.net/ext-3.2.0/resources/images/default/s.gif';
	Ext.QuickTips.init();

	var start = new Date().getTime();

	var form = new Ext.Panel({
		renderTo: Ext.getBody(),
		title: 'FormPanel - Speed Test2 -',
		layout: 'form',
		width: 800,
		height: 600,
		padding: '20',
		autoScroll: true,
		items: [{
			xtype: 'fieldset',
			title: 'fieldset',
			items: [{
				layout: 'column',
				xtype: 'container',
				items: [{
					columnWidth: '.50',
					layout: 'form',
					xtype: 'container',
					items:[{
						xtype: 'textfield',
						fieldLabel: 'Sample1'
					},{
						xtype: 'textfield',
						fieldLabel: 'Sample2'
					}]
				},{
					columnWidth: '.50',
					layout: 'form',
					xtype: 'container',
					items:[{
						xtype: 'textfield',
						fieldLabel: 'Sample3'
					},{
						xtype: 'textfield',
						fieldLabel: 'Sample4'
					}]
				}]
			}]
		}

		・
		・
		・

	});

	var end = new Date().getTime();
	alert((end-start)/1000);
});
</pre>
<h3 class="h">実行結果</h3>
<p><a href="http://www.ispern.com/Examples/html/Panel/FormPanelSpeedTest1.html" target="_blank">containerを指定しない場合</a></p>
<p><a href="http://www.ispern.com/Examples/html/Panel/FormPanelSpeedTest2.html" target="_blank">containerを指定した場合</a></p>
<p><b style="color: red">※ブラウザが固まるので注意して下さい！！</b></p>
<p>Core2 2.0GHzのchromeで7秒くらい違いました。<br />
フィールドを100個も配置する様な画面は無いと思いますが。。。<br />
IE6とか遅い環境だともっと早くなるでしょうね。<br />
それよりもなによりも、ボーダーとか背景とか無駄な描画がされないことが嬉しいです。<br />
フォームアイテムのレイアウトに限らず、Panelの中にPanelを入れたりする場合は多々あるので、<br />
その時にボーダーが重なったりしないのは嬉しいです。<br />
まさに一石二鳥。</p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/jD5YKVRhhkU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=453</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=453</feedburner:origLink></item>
		<item>
		<title>MacVimでHTML,CSS,JavaScriptの文法チェック</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/B2aVmaEAuW8/</link>
		<comments>http://www.ispern.com/?p=430#comments</comments>
		<pubDate>Thu, 06 May 2010 15:12:55 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=430</guid>
		<description><![CDATA[
MacVimでHTML、CSS、JavaScriptを文法チェックできるようにしたのでその手順を。
HTMLとCSSはmakeコマンド、JavaScriptはファイル保存でチェックできるようにしました。

HTML

	HTML Tidyを使って、チェックします。


ここからHTML Tidyをダウンロード
http://tidy.sourceforge.net/
ダウンロードしたファイルを、パスの通っているディレクトリに置く。
「.vim/ftplugin」下に&#8221;html.vim&#8221;を作成する。
&#8220;html.vim&#8221;に以下を記述する。

	html.vim
	compiler tidy
	setlocal makeprg=tidy\ -raw\ -quiet\ -errors\ \&#34;%\&#34;
	


CSS
&#8220;WebService::Validator:CSS::W3C&#8221;というperlモジュールを使って、チェックします。


	&#8220;WebService::Validator:CSS::W3C&#8221;のモジュールをCPAN経由でインストール。
css.vimをダウンロードする。
http://www.vim.org/scripts/script.php?script_id=1577
&#8220;css.vim&#8221;を「.vim/compiler」に置く。
&#8220;validate_css&#8221;をパスの通っているディレクトリに置く。
「.vim/ftplugin」に&#8221;css.vim&#8221;を作成する。
以下を記述する。

	css.vim
	compiler css
	


JavaScript

	JavaScript LintというチェックツールとjavaScriptLint.vimというプラグインを使います。


JavaScript Lintをダウンロード。
http://www.javascriptlint.com/
&#8220;jsl&#8221;を、パスの通っているディレクトリに置く。
javaScriptLint.vimをダウンロードする。
http://www.vim.org/scripts/script.php?script_id=2578
&#8220;javaScriptLint.vim&#8221;を、「.vim/plugin」に置く。


		これでファイル保存時にチェックできるようになります。
		エラーがある場合、下の画像のようにエラーメッセージが表示されて、
		エラーのある行にカーソルが移動します。




	所感

普段はHTMLやCSSよりもJSを書く方が多いのですが、保存したときに自動でチェックしてくれるのは
かなり便利です。今までvimでコード書いているときは、エラーを事前に知る術がなかったので。
あとよくやるのが、「カンマが余計に付いていてFireFoxじゃエラーにならないけどIEでエラーになる」
とかですが、それもきちんとチェックしてくれるので助かっています。
]]></description>
			<content:encoded><![CDATA[<p>
MacVimでHTML、CSS、JavaScriptを文法チェックできるようにしたのでその手順を。<br />
HTMLとCSSはmakeコマンド、JavaScriptはファイル保存でチェックできるようにしました。
</p>
<h4 class="h">HTML</h4>
<p>
	HTML Tidyを使って、チェックします。
</p>
<ol>
<li>ここからHTML Tidyをダウンロード</li>
<p><a href="http://tidy.sourceforge.net/">http://tidy.sourceforge.net/</a></p>
<li>ダウンロードしたファイルを、パスの通っているディレクトリに置く。</li>
<li>「.vim/ftplugin」下に&#8221;html.vim&#8221;を作成する。</li>
<li>&#8220;html.vim&#8221;に以下を記述する。</li>
<pre class="brush: plain;">
	html.vim
	compiler tidy
	setlocal makeprg=tidy\ -raw\ -quiet\ -errors\ \&quot;%\&quot;
	</pre>
</ol>
<p></p>
<h4 class="h">CSS</h4>
<p>&#8220;WebService::Validator:CSS::W3C&#8221;というperlモジュールを使って、チェックします。</p>
<ol>
<li>
	&#8220;WebService::Validator:CSS::W3C&#8221;のモジュールをCPAN経由でインストール。</li>
<li>css.vimをダウンロードする。</li>
<p><a href="http://www.vim.org/scripts/script.php?script_id=1577">http://www.vim.org/scripts/script.php?script_id=1577</a></p>
<li>&#8220;css.vim&#8221;を「.vim/compiler」に置く。</li>
<li>&#8220;validate_css&#8221;をパスの通っているディレクトリに置く。</li>
<li>「.vim/ftplugin」に&#8221;css.vim&#8221;を作成する。</li>
<li>以下を記述する。</li>
<pre class="brush: plain;">
	css.vim
	compiler css
	</pre>
</ol>
<p></p>
<h4 class="h">JavaScript</h4>
<p>
	JavaScript LintというチェックツールとjavaScriptLint.vimというプラグインを使います。
</p>
<ol>
<li>JavaScript Lintをダウンロード。</li>
<p><a href="http://www.javascriptlint.com/">http://www.javascriptlint.com/</a></p>
<li>&#8220;jsl&#8221;を、パスの通っているディレクトリに置く。</li>
<li>javaScriptLint.vimをダウンロードする。
<p><a href="http://www.vim.org/scripts/script.php?script_id=2578">http://www.vim.org/scripts/script.php?script_id=2578</a></p>
<li>&#8220;javaScriptLint.vim&#8221;を、「.vim/plugin」に置く。</li>
</ol>
<p>
		これでファイル保存時にチェックできるようになります。<br />
		エラーがある場合、下の画像のようにエラーメッセージが表示されて、<br />
		エラーのある行にカーソルが移動します。</p>
<p><a href="http://www.flickr.com/photos/44923983@N02/4584352064/"><img src="http://farm5.static.flickr.com/4070/4584352064_bc39871e55_m.jpg" height="200" width="240" alt="ファイル保存時のエラーチェック"/></a>
</p>
<p></p>
<h4 class="h">
	所感<br />
</h4>
<p>普段はHTMLやCSSよりもJSを書く方が多いのですが、保存したときに自動でチェックしてくれるのは<br />
かなり便利です。今までvimでコード書いているときは、エラーを事前に知る術がなかったので。<br />
あとよくやるのが、「カンマが余計に付いていてFireFoxじゃエラーにならないけどIEでエラーになる」<br />
とかですが、それもきちんとチェックしてくれるので助かっています。</p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/B2aVmaEAuW8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=430</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=430</feedburner:origLink></item>
		<item>
		<title>neocomplcacheでスニペット補完</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/64TohvQaIr4/</link>
		<comments>http://www.ispern.com/?p=405#comments</comments>
		<pubDate>Sat, 10 Apr 2010 16:57:29 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=405</guid>
		<description><![CDATA[かなり更新が滞っている。。。
そろそろ書きたいなぁ〜と思いつつ日々が過ぎていました･･･。
最近は、MacVim一本でExtJSのコーディングしたりRailsの勉強したりしていますが、
やっとvimにも馴れてきたかな。と実感している今日この頃です。
以前、neocomplcacheのスニペット補完よりsnipMateの方が使いやすかったと書きましたが、
そのときに作者様より、「neocomplcacheではプレースホルダの中にプレースホルダが定義できる」と
コメントを頂いたので、neocomplcacheでスニペット補完を試しました。（かなり前にですが。。。）

	vimrcの設定

まず、vimrcの設定で、スニペット展開のキーマッピングとスニペットファイルの配置場所を定義します。

&#34; スニペットファイルの配置場所
let g:NeoComplCache_SnippetsDir = '~/.vim/snippets'

&#34; TABでスニペットを展開
imap &#60;expr&#62;&#60;TAB&#62; neocomplcache#plugin#snippets_complete#expandable() ? &#34;\&#60;Plug&#62;(neocomplcache_snippets_expand)&#34; : &#34;\&#60;TAB&#62;&#34;
smap &#60;TAB&#62; &#60;Plug&#62;(neocomplcache_snippets_expand)

&#8220;neocomplcache#plugin#snippets_complete#expandable()&#8221;と&#8221;neocomplcache_snippets_expand&#8221;を使用して、
snipMateの様にTABキーでスニペットが展開できるようにしています。
&#8220;g:NeoComplCache_SnippetsDir&#8221;では、スニペットファイルの配置場所を指定しています。
自分で定義したスニペットファイルは、このフォルダに置いています。
以前は標準のスニペットファイルに追記していたのですが、neocomplcacheをアップデートしたときに
上書きされてしまって面倒なことになったので、自分で定義するスニペットファイルは
&#8220;g:NeoComplCache_SnippetsDir&#8221;で標準の場所とは別の場所に配置することをオススメします。
また、&#8221;g:NeoComplCache_SnippetsDir&#8221;を定義している場合、標準のものよりこちらのスニペットファイルを優先するそうです。
詳しくはヘルプに載っていたのでそちらを参照下さい。

	便利なコマンド


NeoComplCacheEditSnippets

	スニペットファイルを編集するときに使うコマンドです。
	引数にファイルタイプを指定すると、それに対応するスニペットファイルが表示されます。
	指定しない場合は、編集中のファイルのファイルタイプに対応するスニペットファイルが表示されます。
	このコマンドの便利なところは、編集したスニペットファイルが再ロードされるので、
	変更した定義がすぐ反映されるところです。
	私は、NeoComplCacheEditSnippetsと打つのが面倒だったので、&#8221;Nes&#8221;で開くようにしました。

		command! -nargs=* Nes NeoComplCacheEditSnippets &#60;args&#62;
	


NeoComplCachePrintSnippets

	編集中のファイルタイプで使用できるスニペットが表示できます。
	スニペットはneocomplcacheが自動的に補完リストを表示してくれますが、
	自分の意図しないスニペットが展開されたときなどは、
	このコマンドを使って変な定義がされていないか確認しています。


	所感


いろいろ調べているとneocomplcacheの方が便利なコマンドがあったり、
プレースホルダの中にプレースホルダが定義できたりと、こちらの方が使いやすかったです。
ってことで、今はneocomplcache一本で満足しています。
]]></description>
			<content:encoded><![CDATA[<p>かなり更新が滞っている。。。<br />
そろそろ書きたいなぁ〜と思いつつ日々が過ぎていました･･･。<br />
最近は、MacVim一本でExtJSのコーディングしたりRailsの勉強したりしていますが、<br />
やっとvimにも馴れてきたかな。と実感している今日この頃です。</p>
<p>以前、neocomplcacheのスニペット補完よりsnipMateの方が使いやすかったと書きましたが、<br />
そのときに作者様より、「neocomplcacheではプレースホルダの中にプレースホルダが定義できる」と<br />
コメントを頂いたので、neocomplcacheでスニペット補完を試しました。（かなり前にですが。。。）</p>
<h3 class="h">
	vimrcの設定<br />
</h3>
<p>まず、vimrcの設定で、スニペット展開のキーマッピングとスニペットファイルの配置場所を定義します。</p>
<pre class="brush: plain;">
&quot; スニペットファイルの配置場所
let g:NeoComplCache_SnippetsDir = '~/.vim/snippets'

&quot; TABでスニペットを展開
imap &lt;expr&gt;&lt;TAB&gt; neocomplcache#plugin#snippets_complete#expandable() ? &quot;\&lt;Plug&gt;(neocomplcache_snippets_expand)&quot; : &quot;\&lt;TAB&gt;&quot;
smap &lt;TAB&gt; &lt;Plug&gt;(neocomplcache_snippets_expand)
</pre>
<p>&#8220;neocomplcache#plugin#snippets_complete#expandable()&#8221;と&#8221;neocomplcache_snippets_expand&#8221;を使用して、<br />
snipMateの様にTABキーでスニペットが展開できるようにしています。</p>
<p>&#8220;g:NeoComplCache_SnippetsDir&#8221;では、スニペットファイルの配置場所を指定しています。<br />
自分で定義したスニペットファイルは、このフォルダに置いています。<br />
以前は標準のスニペットファイルに追記していたのですが、neocomplcacheをアップデートしたときに<br />
上書きされてしまって面倒なことになったので、自分で定義するスニペットファイルは<br />
&#8220;g:NeoComplCache_SnippetsDir&#8221;で標準の場所とは別の場所に配置することをオススメします。</p>
<p>また、&#8221;g:NeoComplCache_SnippetsDir&#8221;を定義している場合、標準のものよりこちらのスニペットファイルを優先するそうです。<br />
詳しくはヘルプに載っていたのでそちらを参照下さい。</p>
<h3 class="h">
	便利なコマンド<br />
</h3>
<ul>
<li>NeoComplCacheEditSnippets</li>
</ul>
<p>	スニペットファイルを編集するときに使うコマンドです。</p>
<p>	引数にファイルタイプを指定すると、それに対応するスニペットファイルが表示されます。<br />
	指定しない場合は、編集中のファイルのファイルタイプに対応するスニペットファイルが表示されます。</p>
<p>	このコマンドの便利なところは、編集したスニペットファイルが再ロードされるので、<br />
	変更した定義がすぐ反映されるところです。</p>
<p>	私は、NeoComplCacheEditSnippetsと打つのが面倒だったので、&#8221;Nes&#8221;で開くようにしました。</p>
<pre class="brush: plain;">
		command! -nargs=* Nes NeoComplCacheEditSnippets &lt;args&gt;
	</pre>
</p>
<ul>
<li>NeoComplCachePrintSnippets</li>
</ul>
<p>	編集中のファイルタイプで使用できるスニペットが表示できます。</p>
<p>	スニペットはneocomplcacheが自動的に補完リストを表示してくれますが、<br />
	自分の意図しないスニペットが展開されたときなどは、<br />
	このコマンドを使って変な定義がされていないか確認しています。
</p>
<h3 class="h">
	所感<br />
</h3>
<p>
いろいろ調べているとneocomplcacheの方が便利なコマンドがあったり、<br />
プレースホルダの中にプレースホルダが定義できたりと、こちらの方が使いやすかったです。<br />
ってことで、今はneocomplcache一本で満足しています。</p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/64TohvQaIr4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=405</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=405</feedburner:origLink></item>
		<item>
		<title>MacVimでRailsの環境を作る 〜neocomplcacheインストール〜</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/XL63TMQOvdg/</link>
		<comments>http://www.ispern.com/?p=379#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:42:36 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=379</guid>
		<description><![CDATA[
いろいろなキーワードの補完リストを自動的に表示してくれる
neocomplcache
というvimスクリプトを入れました。
autocomplpopみたいなスクリプトです。

主な機能

シンタックス補完
辞書ファイルの補完
タグファイルの補完
ファイル名の補完
オムニ補完
スニペット補完


これだけでも「おぉ！」と思いましたが、同じような機能補完はautocomplpopでもできるんですよね。
ただ、以下のような理由からneocomplcacheを選択しました。

カスタマイズ項目が豊富
プラグインで拡張が可能
SnipMateのトリガーを補完リストに表示できる
autocomplpopでもSnipMateのトリガーを補完リストに表示できるが、パッチを当てる必要があったり、対象が大文字の場合のみだったりと使いにくい

インストール

	下のurlよりダウンロードして、『.vim』フォルダにインストール。
	shougo&#8217;s neocomplcache at master &#8211; github

vimrcの設定
こんな感じです。

&#34; neocomplcache
let g:NeoComplCache_EnableAtStartup = 1
&#34; 大文字小文字を区別する
let g:NeoComplCache_SmartCase = 1
&#34; キャメルケース補完を有効にする
let g:NeoComplCache_EnableCamelCaseCompletion = 1
&#34; アンダーバー補完を有効にする
let g:NeoComplCache_EnableUnderbarCompletion = 1
&#34; シンタックスファイルの補完対象キーワードとする最小の長さ
let g:NeoComplCache_MinSyntaxLength = 3
&#34; プラグイン毎の補完関数を呼び出す文字数
let g:NeoComplCache_PluginCompletionLength = {
  \ 'keyword_complete'  : 2,
  \ 'syntax_complete'   : 2
  \ }
&#34; ファイルタイプ毎の辞書ファイルの場所
let g:NeoComplCache_DictionaryFileTypeLists = {
      [...]]]></description>
			<content:encoded><![CDATA[<p>
いろいろなキーワードの補完リストを自動的に表示してくれる<br />
<a href="http://github.com/shougo/neocomplcache" target="_blank">neocomplcache</a><br />
というvimスクリプトを入れました。<br />
autocomplpopみたいなスクリプトです。
</p>
<h3 class="h">主な機能</h3>
<ul>
<li>シンタックス補完</li>
<li>辞書ファイルの補完</li>
<li>タグファイルの補完</li>
<li>ファイル名の補完</li>
<li>オムニ補完</li>
<li>スニペット補完</li>
</ul>
<p>
これだけでも「おぉ！」と思いましたが、同じような<S>機能</S>補完はautocomplpopでもできるんですよね。<br />
ただ、以下のような理由からneocomplcacheを選択しました。</p>
<ul>
<li>カスタマイズ項目が豊富</li>
<li>プラグインで拡張が可能</li>
<li><S>SnipMateのトリガーを補完リストに表示できる</S></li>
<li>autocomplpopでもSnipMateのトリガーを補完リストに表示できるが、パッチを当てる必要があったり、対象が大文字の場合のみだったりと使いにくい</li>
</ul>
<h3 class="h">インストール</h3>
<p>
	下のurlよりダウンロードして、『.vim』フォルダにインストール。<br />
	<a href="http://github.com/shougo/neocomplcache" target="_blank">shougo&#8217;s neocomplcache at master &#8211; github</a>
</p>
<h3 class="h">vimrcの設定</h3>
<p>こんな感じです。</p>
<pre class="brush: plain;">
&quot; neocomplcache
let g:NeoComplCache_EnableAtStartup = 1
&quot; 大文字小文字を区別する
let g:NeoComplCache_SmartCase = 1
&quot; キャメルケース補完を有効にする
let g:NeoComplCache_EnableCamelCaseCompletion = 1
&quot; アンダーバー補完を有効にする
let g:NeoComplCache_EnableUnderbarCompletion = 1
&quot; シンタックスファイルの補完対象キーワードとする最小の長さ
let g:NeoComplCache_MinSyntaxLength = 3
&quot; プラグイン毎の補完関数を呼び出す文字数
let g:NeoComplCache_PluginCompletionLength = {
  \ 'keyword_complete'  : 2,
  \ 'syntax_complete'   : 2
  \ }
&quot; ファイルタイプ毎の辞書ファイルの場所
let g:NeoComplCache_DictionaryFileTypeLists = {
            \ 'default' : '',
            \ 'java' : $HOME.'/.vim/dict/j2se14.dict',
            \ 'javascript' : $HOME.'/.vim/dict/javascript.dict',
            \ 'php' : $HOME.'/.vim/dict/PHP.dict',
            \ }
</pre>
<h3 class="h">snipMateのトリガーを補完リストに表示する</h3>
<p>
&#8220;g:neocomplcache_snippetsdir&#8221;で任意のスニペットフォルダを指定できます。<br />
このパラメータに、snipMateのスニペットフォルダを指定すると、<br />
snipMateのトリガーも補完リストに表示してくれます。
</p>
<p>
ただ、個人的にsnipMateの方が使いやすかったので、スニペット補完に関してはsnipMateを使用しています。<br />
このとき、補完リストにneocomplcacheとsnipMateのトリガーが重複して表示されてしまっていたので、<br />&#8220;g:neocomplcache_snippetsdir&#8221;の設定はしていません。<br />
その代わり、snipMateのトリガーを補完リストに表示するneocomplcacheのプラグインが<br />
公開されていたので、そちらを使用してトリガーが表示されるようにしました。
</p>
<p>
このサイトで紹介されています。<br />
<a href="http://d.hatena.ne.jp/cooldaemon/20090810/1249898603" target="_blank">neocomplcache + snipMate の接着剤 snipMate_complete を試してみる</a>
</p>
<h3 class="h">所感</h3>
<p>
初回起動時にキーワードがキャッシュされるので、ストレスなく補完リストが表示されました。<br />
snipMateのトリガーを補完リストに表示することで、キーワードを覚えておく必要もないですし、<br />
他にも辞書ファイルやシンタックスなどのキーワードが補完リストに表示されるので、<br />
コーディングもしやすくなりました。<br />
かなり素敵なスクリプトです！！作者の方に感謝です！！
</p>
<h3 class="h">追記</h3>
<p>
	作者様よりコメントを頂き、若干修正しました。<br />
	<a href="http://lingr.com/room/vim/archives/2010/02/03" target="_blank">http://lingr.com/room/vim/archives/2010/02/03</a></p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/XL63TMQOvdg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=379</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=379</feedburner:origLink></item>
		<item>
		<title>MacVimでRailsの環境を作る 〜SnipMateインストール〜</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/zmk-UnXaLFM/</link>
		<comments>http://www.ispern.com/?p=343#comments</comments>
		<pubDate>Wed, 20 Jan 2010 14:35:20 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=343</guid>
		<description><![CDATA[
TextMateライクなスニペット補完が可能になるsnipMateというvimスクリプトを入れました。


snipMateは下の動画で紹介されています。


	
snipMate.vim Introductory Screencast from Michael Sanders on Vimeo.

インストール

下のURLよりスクリプトをダウンロードし、『.vim』フォルダにコピーする。
snipMate &#8211; TextMate-style snippets for Vim

スニペットファイルの配置場所
ダウンロードしたファイルの中に&#8221;snippets&#8221;というフォルダがあるので、そのフォルダに
ファイルタイプ＋&#8221;.snippet&#8221;
のファイル形式で配置すれば、ファイルタイプに応じたスニペットファイルが読み込まれます。
デフォルトのスニペットファイルもいくつかあります。
スニペットファイルの書き方

	書き方はこんな感じです。


	snippet トリガーとなるキーワード 説明
		展開する定型文


例えば、

snippet div
	&#60;div id=&#34;${1}&#34; class=&#34;${2}&#34; style=&#34;${3}&#34;&#62;
		${4}
	&#60;/div&#62;

と定義した場合、
div&#60;TAB&#62;
と入力すると、定義した定型文が展開されます。
上の&#8221;${X}&#8221;は、&#60;TAB&#62;を入力する毎に、１，２，３･･･の順でカーソルが移動します。
プレースホルダの書き方は以下の通りです。

${1} ･･･　TAB移動するマーカ
${1:name}　･･･　デフォルトで&#8221;name&#8221;が入力される
${2:$1}　･･･　${1}で入力した文字が${2}にも同期される


説明は、必須ではありませんが、トリガーのキーワードが重複している場合、
スニペットが一覧表示されますので、そのときにスニペットの説明として表示されます。
こんな感じの画面です。


この画面で展開したいスニペットの数字を入力すると、選択したスニペットが展開されます。
スニペットファイルが公開されているサイト
スニペットファイルがいくつか公開されていました。

vim-snipmate-ruby-snippets
snipmate-snippets

所感

スニペットファイルも定義しやすいし、さくさく入力ができるのでかなりおすすめです。
ただ、TextMateのようにプレースホルダの中にプレースホルダを定義出来ないことが残念です。
将来のリリースに期待です。
]]></description>
			<content:encoded><![CDATA[<p>
TextMateライクなスニペット補完が可能になる<b>snipMate</b>というvimスクリプトを入れました。
</p>
<p>
snipMateは下の動画で紹介されています。
</p>
<p>
	<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3535418&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3535418&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>
<p><a href="http://vimeo.com/3535418">snipMate.vim Introductory Screencast</a> from <a href="http://vimeo.com/user1404868">Michael Sanders</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</p>
<h3 class="h">インストール</h3>
<p>
下のURLよりスクリプトをダウンロードし、『.vim』フォルダにコピーする。<br />
<a href="http://www.vim.org/scripts/script.php?script_id=2540" target="_blank">snipMate &#8211; TextMate-style snippets for Vim</a>
</p>
<h3 class="h">スニペットファイルの配置場所</h3>
<p>ダウンロードしたファイルの中に&#8221;snippets&#8221;というフォルダがあるので、そのフォルダに<br />
ファイルタイプ＋&#8221;.snippet&#8221;<br />
のファイル形式で配置すれば、ファイルタイプに応じたスニペットファイルが読み込まれます。<br />
デフォルトのスニペットファイルもいくつかあります。</p>
<h3 class="h">スニペットファイルの書き方</h3>
<p>
	書き方はこんな感じです。</p>
<pre class="brush: plain;">

	snippet トリガーとなるキーワード 説明
		展開する定型文
</pre>
<p>
例えば、</p>
<pre class="brush: plain;">
snippet div
	&lt;div id=&quot;${1}&quot; class=&quot;${2}&quot; style=&quot;${3}&quot;&gt;
		${4}
	&lt;/div&gt;
</pre>
<p>と定義した場合、<br />
div&lt;TAB&gt;<br />
と入力すると、定義した定型文が展開されます。<br />
上の&#8221;${X}&#8221;は、&lt;TAB&gt;を入力する毎に、１，２，３･･･の順でカーソルが移動します。<br />
プレースホルダの書き方は以下の通りです。</p>
<ul>
<li>${1} ･･･　TAB移動するマーカ</li>
<li>${1:name}　･･･　デフォルトで&#8221;name&#8221;が入力される</li>
<li>${2:$1}　･･･　${1}で入力した文字が${2}にも同期される</li>
</ul>
<p>
説明は、必須ではありませんが、トリガーのキーワードが重複している場合、<br />
スニペットが一覧表示されますので、そのときにスニペットの説明として表示されます。<br />
こんな感じの画面です。<br />
<a rel="attachment wp-att-358" href="http://www.ispern.com/?attachment_id=358"><img class="size-full wp-image-358" title="vim_1" src="http://www.ispern.com/wp-content/uploads/2010/01/vim_1.png" alt="" width="431" height="117" /></a>
</p>
<p>この画面で展開したいスニペットの数字を入力すると、選択したスニペットが展開されます。</p>
<h3 class="h">スニペットファイルが公開されているサイト</h3>
<p>スニペットファイルがいくつか公開されていました。</p>
<ul>
<li><a href="http://github.com/kaichen/vim-snipmate-ruby-snippets" target="_blank">vim-snipmate-ruby-snippets</a></li>
<li><a href="http://github.com/leoluz/snipmate-snippets" target="_blank">snipmate-snippets</a></li>
</ul>
<h3 class="h">所感</h3>
<p>
スニペットファイルも定義しやすいし、さくさく入力ができるのでかなりおすすめです。<br />
ただ、TextMateのようにプレースホルダの中にプレースホルダを定義出来ないことが残念です。<br />
将来のリリースに期待です。</p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/zmk-UnXaLFM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=343</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=343</feedburner:origLink></item>
		<item>
		<title>MacVimでRailsの開発環境を作る　〜MacVimインストールと初期設定〜</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/ph_ZxbTcqf4/</link>
		<comments>http://www.ispern.com/?p=324#comments</comments>
		<pubDate>Mon, 04 Jan 2010 14:17:22 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=324</guid>
		<description><![CDATA[
明けましておめでとうございます。
今年はブログの更新頻度を上げていきたいと思います。
いつまで続くか分かりませんが、日々の勉強したメモをこまめに追加していきますので
よろしくです。


vimでTextMateライクなスニペット補完が出来るとどこかのサイトで発見したのを発端に
去年の末からvimを触っています。
vimはほとんど初心者ですが、TextMateライクなエディタを目指して構築中です。
まずは、インストールと設定、カラースキーマ・便利なvimスクリプトを入れたのでそのメモから。

インストール

    Mac版Gvimをインストールします。
    macvim-kaoriya

必要なフォルダとファイルを作成

$HOMEに&#8221;.vim&#8221;というフォルダと、&#8221;.gvimrc&#8221;というファイルを作成します。
&#8220;.vim&#8221;は、MacVimが使用するカラースキーマやスクリプトを格納するフォルダ。
&#8220;.gvimrc&#8221;はgvimの設定ファイル。そのほかにvimの設定ファイルの&#8221;.vimrc&#8221;などがあるそうです。

設定

&#8220;.gvimrc&#8221;に必要な設定を記述。
こんな感じで。

&#34;新しい行のインデントを現在行と同じにする
set autoindent
&#34;バックアップファイルを作るディレクトリ
set backupdir=$HOME/vimbackup
&#34;ファイル保存ダイアログの初期ディレクトリをバッファファイル位置に設定
set browsedir=buffer
&#34;クリップボードをWindowsと連携
set clipboard=unnamed
&#34;Vi互換をオフ
set nocompatible
&#34;スワップファイル用のディレクトリ
set directory=$HOME/vimbackup
&#34;タブの代わりに空白文字を挿入する
set expandtab
&#34;変更中のファイルでも、保存しないで他のファイルを表示
set hidden
&#34;インクリメンタルサーチを行う
set incsearch
&#34;タブ文字、行末など不可視文字を表示する
set list
&#34;listで表示される文字のフォーマットを指定する
set listchars=eol:$,tab:&#62;\ ,extends:&#60;
&#34;行番号を表示する
set number
&#34;シフト移動幅
&#34;set shiftwidth=4
&#34;閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch
&#34;検索時に大文字を含んでいたら大/小を区別
set smartcase
&#34;新しい行を作ったときに高度な自動インデントを行う
set smartindent
&#34;行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする。
set smarttab
&#34;ファイル内の &#60;Tab&#62; が対応する空白の数
&#34;set tabstop=4
&#34;カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,&#60;,&#62;,[,]
&#34;検索をファイルの先頭へループしない
set nowrapscan
&#34;縦幅
set lines=50
&#34;横幅
set columns=150
&#34;入力モード時、ステータスラインのカラーを変更
augroup InsertHook
autocmd!
autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340
autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90
augroup END
&#34;日本語入力をリセット
au BufNewFile,BufRead * set iminsert=0
&#34;タブ幅をリセット
au [...]]]></description>
			<content:encoded><![CDATA[<p>
明けましておめでとうございます。<br />
今年はブログの更新頻度を上げていきたいと思います。<br />
いつまで続くか分かりませんが、日々の勉強したメモをこまめに追加していきますので<br />
よろしくです。
</p>
<p>
vimでTextMateライクなスニペット補完が出来るとどこかのサイトで発見したのを発端に<br />
去年の末からvimを触っています。<br />
vimはほとんど初心者ですが、TextMateライクなエディタを目指して構築中です。<br />
まずは、インストールと設定、カラースキーマ・便利なvimスクリプトを入れたのでそのメモから。
</p>
<h3 class="h">インストール</h3>
<p>
    Mac版Gvimをインストールします。<br />
    <a href="http://code.google.com/p/macvim-kaoriya/" target="_blank">macvim-kaoriya</a>
</p>
<h3 class="h">必要なフォルダとファイルを作成</h3>
<p>
$HOMEに&#8221;.vim&#8221;というフォルダと、&#8221;.gvimrc&#8221;というファイルを作成します。<br />
&#8220;.vim&#8221;は、MacVimが使用するカラースキーマやスクリプトを格納するフォルダ。<br />
&#8220;.gvimrc&#8221;はgvimの設定ファイル。そのほかにvimの設定ファイルの&#8221;.vimrc&#8221;などがあるそうです。
</p>
<h3 class="h">設定</h3>
<p>
&#8220;.gvimrc&#8221;に必要な設定を記述。<br />
こんな感じで。</p>
<pre class="brush: plain;">
&quot;新しい行のインデントを現在行と同じにする
set autoindent
&quot;バックアップファイルを作るディレクトリ
set backupdir=$HOME/vimbackup
&quot;ファイル保存ダイアログの初期ディレクトリをバッファファイル位置に設定
set browsedir=buffer
&quot;クリップボードをWindowsと連携
set clipboard=unnamed
&quot;Vi互換をオフ
set nocompatible
&quot;スワップファイル用のディレクトリ
set directory=$HOME/vimbackup
&quot;タブの代わりに空白文字を挿入する
set expandtab
&quot;変更中のファイルでも、保存しないで他のファイルを表示
set hidden
&quot;インクリメンタルサーチを行う
set incsearch
&quot;タブ文字、行末など不可視文字を表示する
set list
&quot;listで表示される文字のフォーマットを指定する
set listchars=eol:$,tab:&gt;\ ,extends:&lt;
&quot;行番号を表示する
set number
&quot;シフト移動幅
&quot;set shiftwidth=4
&quot;閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch
&quot;検索時に大文字を含んでいたら大/小を区別
set smartcase
&quot;新しい行を作ったときに高度な自動インデントを行う
set smartindent
&quot;行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする。
set smarttab
&quot;ファイル内の &lt;Tab&gt; が対応する空白の数
&quot;set tabstop=4
&quot;カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,&lt;,&gt;,[,]
&quot;検索をファイルの先頭へループしない
set nowrapscan
&quot;縦幅
set lines=50
&quot;横幅
set columns=150
&quot;入力モード時、ステータスラインのカラーを変更
augroup InsertHook
autocmd!
autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340
autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90
augroup END
&quot;日本語入力をリセット
au BufNewFile,BufRead * set iminsert=0
&quot;タブ幅をリセット
au BufNewFile,BufRead * set tabstop=4 shiftwidth=4
&quot;全角スペースを視覚化
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=#666666
au BufNewFile,BufRead * match ZenkakuSpace /　/
&quot;常にタブを表示
set showtabline=2
&quot;透明度を変更
set transparency=3
map &lt;silent&gt; gw :macaction selectNextWindow:
map &lt;silent&gt; gW :macaction selectPreviousWindow:
&quot;フォント設定
set guifontwide=Osaka:h12
set guifont=Osaka-Mono:h14
</pre>
</p>
<p>
設定の詳細については、以下のページが詳しく載ってます。<br />
<a href="http://www15.ocn.ne.jp/~tusr/vim/options_help.html" target="_blank">vim options</a>
</p>
<h3 class="h">カラースキーマで色を変える</h3>
<p>
カラースキーマをインストールすることで、gvimの色を好きな色に変更することができます。<br />
名無しのvim使いさんのサイトにプレビューが大量に載っていました。<br />
<a href="http://nanasi.jp/colorscheme.html" target="_blank">カラースキーマ　−　名無しのvim使い</a>
</p>
<p>
適用する場合は、好きなカラースキーマのファイルをダウンロードし、$HOME/.vim/colorsにダウンロードしたファイルをコピーします。<br />
コピー後、.gvimrcでカラースキーマを設定すればOK。</p>
<pre class="brush: plain;">
colorscheme blackbeauty
</pre>
</p>
<h3 class="h">vimスクリプトのインストール</h3>
<p>
vimスクリプトは、Eclipseでいうプラグインのようなもので、とにかく数が豊富。<br />
入れたvimスクリプトは以下。
</p>
<ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1849" target="_blank">autoclose.vim</a></li>
<ul>
<li>&#8220;({[を入力すると、自動的に閉じ記号を補完してくれる</li>
</ul>
<li><a href="http://www.vim.org/script.php?script_id=23" target="_blank">EnhancedCommentify.vim</a></li>
<ul>
<li>ビジュアルモードで選択した範囲にコメント記号を挿入／削除してくれる。詳しい設定は、<a href="http://nanasi.jp/articles/vim/enhancedcommentify_vim.html" target="_blank">こちら</a></li>
</ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1234" target="_blank">yankring.vim</a></li>
<ul>
<li>コピー履歴を保持し、履歴からペーストするテキストを選択できるようになる</li>
</ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=539" target="_blank">FavEx.vim</a></li>
<ul>
<li>フォルダ・ファイルをお気に入り登録し、登録したフォルダ・ファイルを開くことができる</li>
</ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=521" target="_blank">mru.vim</a></li>
<ul>
<li>開いたファイルの履歴を保持し、開けるようにする</li>
</ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1658" target="_blank">NERD_tree.vim</a></li>
<ul>
<li>ファイルツリーを表示する</li>
</ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=69" target="_blank">project.vim</a></li>
<ul>
<li>gvimをIDEっぽくプロジェクトツリーを表示する</li>
</ul>
</ul>
<p>今日はここまで。</p>
<h3 class="h">参考にしたサイト</h3>
<p>
<a href="http://blog.blueblack.net/item_110" target="_blank">ナレッジエース &#8211; Vim初心者的導入メモ 2/3 「vimrc設定」編</a><br />
<a href="http://nanasi.jp/" target="_blank">名無しのvim使い</a></p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/ph_ZxbTcqf4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=324</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=324</feedburner:origLink></item>
		<item>
		<title>JournlerからEvernoteへのデータ移行方法</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/xM3dHjjt_fM/</link>
		<comments>http://www.ispern.com/?p=303#comments</comments>
		<pubDate>Mon, 19 Oct 2009 20:00:14 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Webサービス]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[evernote]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=303</guid>
		<description><![CDATA[JournlerからEvernoteへのデータ移行しました。
以下、手順です。
Journlerからデータのエクスポート
「File -&#62; Export Journal」で以下の画面が表示される。

私はオプションを上記画面のように設定しました。
『DataFormat』はWebアーカイブとかXHTMLとかもあったんですが、Evernoteにインポートした時
件名に〜.htmlとかがくっついてきたので、Rich Textでエクスポートしました。
『Include header』は余計だったので外しています。
Evernoteでの設定
Evernoteを起動して、Preferencesを表示する。
「Clipping」タブをクリックして、「After a clip」のチェックボックスを全て外す。
（インポートするときに毎回通知のアクションが走るので。）
Apple Scriptの作成
以下のApple Scriptを作成します。
 



set listOfNames to {}
set theFolder to choose folder &#34;Select the source folder&#34;

tell application &#34;Finder&#34;
 set filelist to every file of the folder theFolder
 repeat with currentFile in filelist
 set currentFileName to (the name of currentFile)
 set nom to currentFileName
 if text -4 of nom is [...]]]></description>
			<content:encoded><![CDATA[<p>JournlerからEvernoteへのデータ移行しました。</p>
<p>以下、手順です。</p>
<h4 class="h">Journlerからデータのエクスポート</h4>
<p>「File -&gt; Export Journal」で以下の画面が表示される。</p>
<p><img src="http://www.ispern.com/wp-content/uploads/2009/10/スクリーンショット（2009-10-12-9.50.16）.png" alt="スクリーンショット（2009-10-12 9.50.16）.png" width="480" height="476" /></p>
<p>私はオプションを上記画面のように設定しました。<br />
『DataFormat』はWebアーカイブとかXHTMLとかもあったんですが、Evernoteにインポートした時<br />
件名に〜.htmlとかがくっついてきたので、Rich Textでエクスポートしました。<br />
『Include header』は余計だったので外しています。</p>
<h4 class="h">Evernoteでの設定</h4>
<p>Evernoteを起動して、Preferencesを表示する。<br />
「Clipping」タブをクリックして、「After a clip」のチェックボックスを全て外す。<br />
（インポートするときに毎回通知のアクションが走るので。）</p>
<h4 class="h">Apple Scriptの作成</h4>
<p>以下のApple Scriptを作成します。<br />
<span style="color: #2F9700; font-family: Verdana, Verdana, Helvetica, sans-serif; line-height: normal;"><span style="color: #000000"><strong> </strong></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana; min-height: 15.0px">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">
<pre class="brush: jscript;">
set listOfNames to {}
set theFolder to choose folder &quot;Select the source folder&quot;

tell application &quot;Finder&quot;
 set filelist to every file of the folder theFolder
 repeat with currentFile in filelist
 set currentFileName to (the name of currentFile)
 set nom to currentFileName
 if text -4 of nom is &quot;.&quot; then
 set currentFileName to (text 1 thru -5 of nom)
 end if
 set currentFileDate to (the creation date of currentFile)
 set currentFileLocation to currentFile as alias
 set currentFileFolder to (the name of theFolder)
 tell application &quot;Evernote&quot;
 create note title currentFileName created currentFileDate notebook currentFileFolder from file currentFileLocation
 end tell
 end repeat
end tell
</pre>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">そして、実行。</p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">ファイル選択のダイアログが出てくるので、Journlerでエクスポートしたデータが</p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">入っているフォルダを選択すると、一気にEvernoteへインポートされます。</p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.7px; font: 12.0px Verdana">以下、参考にしたサイトです。</p>
<pre><a href="http://www.ajmani.org/blog/?p=13" target="_blank">Permanent Link to Migrating from Journler to Evernote</a></pre>
<div style="text-indent: -41px;"><span style="font-family: Verdana,Verdana,Helvetica,sans-serif;"><span style="line-height: normal;"><strong>そ</strong></span></span></div>
<div style="text-indent: -41px;"><span style="font-family: Verdana,Verdana,Helvetica,sans-serif;"><span style="line-height: normal;"><strong><br />
</strong></span></span></div>
<div style="text-indent: -41px;"><span style="font-family: Verdana,Verdana,Helvetica,sans-serif;"><span style="line-height: normal;"><strong><br />
</strong></span></span></div>
<div style="text-indent: -41px;"><span style="font-family: Verdana,Verdana,Helvetica,sans-serif;"><span style="line-height: normal;"><strong><br />
</strong></span></span></div>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/xM3dHjjt_fM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=303</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=303</feedburner:origLink></item>
		<item>
		<title>Evernoteが素敵</title>
		<link>http://feedproxy.google.com/~r/ispern/feed/~3/cxb4_qFJ4B4/</link>
		<comments>http://www.ispern.com/?p=288#comments</comments>
		<pubDate>Sun, 11 Oct 2009 09:20:21 +0000</pubDate>
		<dc:creator>ispern</dc:creator>
				<category><![CDATA[Webサービス]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.ispern.com/?p=288</guid>
		<description><![CDATA[最近知ったEvernoteというWebサービスのノートツールが素敵です。
Webではもちろん、Windows用、Mac用、iPhone用など専用の
クライアントアプリまで揃っていて、これがまた使いやすいです。
Mac用だとiSightでも画像メモ、iPhoneだとカメラの画像メモと
ボイスレコーダーでのボイスメモまで作成できる。
今までノートツールには、Journlerを使っていましたが、
Evernoteに乗り替えようかと画策中です。
Evernote
http://www.evernote.com/
]]></description>
			<content:encoded><![CDATA[<p>最近知ったEvernoteというWebサービスのノートツールが素敵です。<br />
Webではもちろん、Windows用、Mac用、iPhone用など専用の<br />
クライアントアプリまで揃っていて、これがまた使いやすいです。</p>
<p>Mac用だとiSightでも画像メモ、iPhoneだとカメラの画像メモと<br />
ボイスレコーダーでのボイスメモまで作成できる。</p>
<p>今までノートツールには、Journlerを使っていましたが、<br />
Evernoteに乗り替えようかと画策中です。</p>
<p style="font-size: 14px;"><strong>Evernote</strong></p>
<p><a title="http://www.evernote.com/" href="http://www.evernote.com/" target="_blank">http://www.evernote.com/</a></p>
<img src="http://feeds.feedburner.com/~r/ispern/feed/~4/cxb4_qFJ4B4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ispern.com/?feed=rss2&amp;p=288</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ispern.com/?p=288</feedburner:origLink></item>
	</channel>
</rss>
