<?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>Supernova &#187; vi</title>
	<atom:link href="http://blog.dealforest.net/category/vi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dealforest.net</link>
	<description>be careful, be bravely</description>
	<lastBuildDate>Wed, 01 Sep 2010 15:18:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Gist を Vim から操作する Gist.vim が相当便利</title>
		<link>http://blog.dealforest.net/2009/06/vim-plugin-gistvim/</link>
		<comments>http://blog.dealforest.net/2009/06/vim-plugin-gistvim/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 16:14:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vi]]></category>
		<category><![CDATA[gists]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.dealforest.net/?p=505</guid>
		<description><![CDATA[
id:mattn さんが作った Gist.vim が gists を使う際にとても便利です。
curl が必要なのと id と token を vimrc に書けば使える。
ちなみに git config に設定していれば書かなくても大丈夫

簡単に操作の説明。(version 2.5)

let g:github_user = 'dealforest'
let g:github_token = 'XXXXXXXXXXXXXXXXXX'



:Gist
ポストされます。


:&#8217;]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://mattn.kaoriya.net/software/vim/20081106153534.htm">id:mattn</a> さんが作った Gist.vim が gists を使う際にとても便利です。<br />
curl が必要なのと id と token を vimrc に書けば使える。<br />
ちなみに git config に設定していれば書かなくても大丈夫
</p>
<h2>簡単に操作の説明。(version 2.5)</h2>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">let g:github_user = 'dealforest'
let g:github_token = 'XXXXXXXXXXXXXXXXXX'</pre></div></div>

<table>
<tr>
<td>:Gist</td>
<td>ポストされます。</td>
</tr>
<tr>
<td>:&#8217;<,'>Gist </td>
<td>矩形選択部分をポストします</td>
</tr>
<tr>
<td>:Gist -p</td>
<td>privateモードでポスト</td>
</tr>
<tr>
<td>:Gist xxxx</td>
<td>idを指定して開く</td>
</tr>
<tr>
<td>:Gist -l [ユーザID]</td>
<td>(ユーザーを指定して)一覧を開く</td>
</tr>
<tr>
<td>:Gist -la</td>
<td>全てのユーザの最新gist一覧</td>
</tr>
<tr>
<td>:Gist -c XXXXX</td>
<td>クリップボードにコピー</td>
</tr>
<tr>
<td>:Gist -e</td>
<td>編集。ただし gist buffer 上でしかできない。</td>
</tr>
</table>
<h2>ショートカット</h2>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">nnoremap &lt;silent&gt; ,gn :Gist&lt;cr&gt;
nnoremap &lt;silent&gt; ,gl :Gist -l&lt;cr&gt;
nnoremap &lt;silent&gt; ,ga :Gist -a&lt;cr&gt;
nnoremap &lt;silent&gt; ,ge :Gist -e&lt;cr&gt;
nnoremap &lt;silent&gt; ,gp :Gist -p&lt;cr&gt;
nnoremap &lt;silent&gt; ,gr :Gist
nnoremap &lt;silent&gt; ,gu :Gist -l</pre></div></div>

<p>こんな感じでショートカットを作ってます</p>
<h2>パッチ</h2>
<p>
実際に使っていて凄い便利。<br />
ただ :Gist xxxx がどーしても動かなかったので gist.vim を修正した。
</p>
<pre class="brush: diff;">
@@ -391,7 +398,7 @@
     elseif arg =~ '^\(-e\|--edit\)$' &amp;&amp; bufname =~ bufnamemx
       let editpost = 1
       let gistid = substitute(bufname, bufnamemx, '\1', '')
-    elseif len(gistls) &gt; 0 &amp;&amp; len(gistnm) == 0
+    elseif len(gistnm) == 0
       if editpost == 1
         let gistnm = arg
       elseif len(gistls) &gt; 0
</pre>
<p>gistls についてはそれ以下のところで判断してるのでここでいれたら動かないと思う。</p>
<p>
あと自分用に少しカスタマイズした。<br />
:Gist で POST した後に :Gist -l で一覧を表示した際<br />
少しラグがありさきほど POST したのが表示されない。<br />
修正したり変更したりするのが不便。というわけで POST 後に自動的に<br />
buffer に開くようにした。これで :w で再度ポストもそのままできるから便利。<br />
split して開くのがどーかとも思うけど、まぁいいやと放置
</p>
<pre class="brush: diff;">
@@ -340,13 +340,6 @@
   let res = substitute(res, '^.*: ', '', '')
   if len(res) &gt; 0 &amp;&amp; res != 'http://gist.github.com/gists'
     echo 'done: '.res
+
+    let mx = '^http://gist.github.com/\(\d\+\)$'
+    if res =~# mx
+      let gistid = substitute(res, mx, '\1', '')
+      echo gistid
+      call s:GistGet(g:github_user, g:github_token, gistid, 0)
+    endif
   else
     echoerr 'Post failed'
   endif
</pre>
<p>
GistListAction と動作が似てる(ほぼそこのコピペ)からいじればいいとは思うけど<br />
そもそも vimscript そこまで分からなってないため妥協。<br />
とりあえず動いてるしいいかと。。。
</p>
<p>
デバッグとかってどーするもんなんだろ。<br />
みんな echo でしてんのかな。<br />
効率いい方法はどうしたものか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dealforest.net/2009/06/vim-plugin-gistvim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>コード中の class や function を perldoc で簡単に表示できる Vim プラグイン</title>
		<link>http://blog.dealforest.net/2009/05/perldocvim-is-very-cool-plugin-of-vim/</link>
		<comments>http://blog.dealforest.net/2009/05/perldocvim-is-very-cool-plugin-of-vim/#comments</comments>
		<pubDate>Thu, 28 May 2009 19:20:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vi]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimscript]]></category>

		<guid isPermaLink="false">http://blog.dealforest.net/?p=471</guid>
		<description><![CDATA[
id:secondlife さんの Vim プラグイン perldoc.vim がやばい。
久々にすごいヒット。使い方も簡単。インストールも簡単。
以下、本家引用


適当な func/class の上で K で読めるようになる。
perldoc 表示側でも K で飛べるのでぐるぐる巡れる。
s でソースコードとトグルする。


ここでいう func って perldoc -f で探すもののこと。(my, open, map とか)

はまりどこ
そんなだいそれたものでもないけど。。。

~/.vim/ftplugin/perl/init.vim に setlocal iskeyword+=: をかく。かかないとモジュール名(::)で区切られて perldoc が開く。(ex. URI::Simple => URIで開く):set iskeyword で確認できるよ。
syntax plugin on ってのが
.vimrc に書いてないと、そもそも plugin 自体が動かない。

初めての VimScript そして github
凄い便利だけど、個人的に横分割があまり好きでない。
というわけで、ソースもみやすそうだったので縦分割で見れるようにいじってみた。


VimScript 触るのは初めてだったけど、help と勘でどーにかなった。
といっても何をやってるかはほんとに勘でこうだろうと
決めつけていじってるので何かあった時はご了承をw


~/.vim/ftplugin/perl/init.vim にこれを追記すると縦分割で表示されるようになる。
let b:window_vsplit = 1


--- perldoc.vim	2009-05-29 03:14:14.000000000 +0900
+++ perldoc_vsplit.vim	2009-05-29 03:14:02.000000000 +0900
@@ -13,17 [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://subtech.g.hatena.ne.jp/secondlife/20081001/1222845699">id:secondlife</a> さんの Vim プラグイン perldoc.vim がやばい。<br />
久々にすごいヒット。使い方も簡単。インストールも簡単。<br />
以下、本家引用
</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">適当な func/class の上で K で読めるようになる。
perldoc 表示側でも K で飛べるのでぐるぐる巡れる。
s でソースコードとトグルする。</pre></div></div>

<p>
ここでいう func って perldoc -f で探すもののこと。(my, open, map とか)
</p>
<h3>はまりどこ</h3>
<p>そんなだいそれたものでもないけど。。。</p>
<ul>
<li>~/.vim/ftplugin/perl/init.vim に <strong>setlocal iskeyword+=:</strong> をかく。かかないとモジュール名(::)で区切られて perldoc が開く。(ex. URI::Simple => URIで開く):set iskeyword で確認できるよ。</li>
<li><strong>syntax plugin on</strong> ってのが<br />
.vimrc に書いてないと、そもそも plugin 自体が動かない。</li>
</ul>
<h3>初めての VimScript そして github</h3>
<p>凄い便利だけど、個人的に横分割があまり好きでない。<br />
というわけで、ソースもみやすそうだったので縦分割で見れるようにいじってみた。
</p>
<p>
VimScript 触るのは初めてだったけど、help と勘でどーにかなった。<br />
といっても何をやってるかはほんとに勘でこうだろうと<br />
決めつけていじってるので何かあった時はご了承をw
</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">~/.vim/ftplugin/perl/init.vim にこれを追記すると縦分割で表示されるようになる。
let b:window_vsplit = 1</pre></div></div>

<pre class="brush: diff;">
--- perldoc.vim	2009-05-29 03:14:14.000000000 +0900
+++ perldoc_vsplit.vim	2009-05-29 03:14:02.000000000 +0900
@@ -13,17 +13,26 @@
 let s:buf_nr = -1
 let s:mode = ''
 let s:last_word = ''
+let b:window_vsplit = 0

 function! s:PerldocView()
   &quot; base on FuzzyFinder WindowManager
   let cwd = getcwd()

   if !bufexists(s:buf_nr)
-    leftabove new
+    if b:window_vsplit
+      rightbelow vnew
+    else
+      leftabove new
+    end
     file \[Perldoc]
     let s:buf_nr = bufnr('%')
   elseif bufwinnr(s:buf_nr) == -1
-    leftabove split
+    if b:window_vsplit
+      rightbelow vnew
+    else
+      leftabove new
+    end
     execute s:buf_nr . 'buffer'
     delete _
   elseif bufwinnr(s:buf_nr) != bufwinnr('%')
</pre>
<p>
ソースは github にあります。<br />
<a href="http://github.com/dealforest/perldoc-vim/tree/master">dealforest&#8217;s perldoc-vim at master &#8211; GitHub</a><br />
git さわろうさわろうと思ってよーやくさわってみた。<br />
fork していいものか分からなかったけど勢いでしてみた。<br />
まずかったらすみません。。。
</p>
<p>
なんにせよ初めて尽くしで色々おもしろかったー。<br />
せっかく fork したんだし、これを機に勉強を兼ねてしばらくいじろうかな</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dealforest.net/2009/05/perldocvim-is-very-cool-plugin-of-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac の Vim から Flash のパブリッシュを実行する</title>
		<link>http://blog.dealforest.net/2009/04/flash-publish-when-mac-of-vim-preserved/</link>
		<comments>http://blog.dealforest.net/2009/04/flash-publish-when-mac-of-vim-preserved/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 20:53:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vi]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[jsfl]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.dealforest.net/?p=391</guid>
		<description><![CDATA[内容自体はタイトルのまま。
id:Htanabee さんの Vim から Flash のパブリッシュを実行する を参考にして試した。
ただ元の記事が Windows を対象にしていたので mac で試してみた。
publish.jsfl はそのまま拝借します。
これだとテストムービの再生。

fl.getDocumentDOM().testMovie();

こっちだとパブリッシュを行います

fl.getDocumentDOM().publish();

あとはこれを .vimrc にかけばおk。
気になるようであればファイルタイプ指定すればおk

nnoremap &#60;buffer&#62; &#60;c-W&#62;&#60;cr&#62; :!open -a &#34;Adobe Flash CS4&#34; &#34;/パス/publish.jsfl&#34;&#60;cr&#62;

 でパブリッシュの実行をさせたいのだけどなぜか反応しない。
他のキーならちゃんと動くのにorz
原因がわからない。
引用元(http://unkar.jp/read/pc11.2ch.net/software/1106153307#l238)

:h chalice-usage
> NOTE: 端末の関係上やが使用できない場合があります。そのような環境で
> はと-をそれぞれ代わりに利用できます。

これかな？？

ま、これで相当快適になった。
]]></description>
			<content:encoded><![CDATA[<p>内容自体はタイトルのまま。<br />
<a href="http://blog.kaihatsubu.com/">id:Htanabee</a> さんの <a href="http://blog.kaihatsubu.com/archives/001407.html">Vim から Flash のパブリッシュを実行する</a> を参考にして試した。<br />
ただ元の記事が Windows を対象にしていたので mac で試してみた。</p>
<p>publish.jsfl はそのまま拝借します。<br />
これだとテストムービの再生。</p>

<div class="wp_syntax"><div class="code"><pre class="jsfl" style="font-family:monospace;">fl.getDocumentDOM().testMovie();</pre></div></div>

<p>こっちだとパブリッシュを行います</p>

<div class="wp_syntax"><div class="code"><pre class="jsfl" style="font-family:monospace;">fl.getDocumentDOM().publish();</pre></div></div>

<p>あとはこれを .vimrc にかけばおk。<br />
気になるようであればファイルタイプ指定すればおk</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;">nnoremap <span style="color: #000000;">&lt;</span>buffer<span style="color: #000000;">&gt;</span> <span style="color: #000000;">&lt;</span>c<span style="color: #000000;">-</span>W<span style="color: #000000;">&gt;&lt;</span>cr<span style="color: #000000;">&gt;</span> <span style="color: #000000;">:!</span>open <span style="color: #000000;">-</span>a <span style="color: #C5A22D;">&quot;Adobe Flash CS4&quot;</span> <span style="color: #C5A22D;">&quot;/パス/publish.jsfl&quot;</span><span style="color: #000000;">&lt;</span>cr<span style="color: #000000;">&gt;</span></pre></div></div>

<p><c-CR> でパブリッシュの実行をさせたいのだけどなぜか反応しない。<br />
他のキーならちゃんと動くのにorz<br />
原因がわからない。</p>
<p>引用元(<a href="http://unkar.jp/read/pc11.2ch.net/software/1106153307#l238">http://unkar.jp/read/pc11.2ch.net/software/1106153307#l238</a>)</p>
<pre lang="">
:h chalice-usage
> NOTE: 端末の関係上<c-CR>や<s-CR>が使用できない場合があります。そのような環境で
> は<c-W><cr>と-<cr>をそれぞれ代わりに利用できます。
</pre>
<p>これかな？？</p>
<p>
ま、これで相当快適になった。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dealforest.net/2009/04/flash-publish-when-mac-of-vim-preserved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VimM#3 勉強会にいってきた</title>
		<link>http://blog.dealforest.net/2008/11/vimm3-%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%81%ab%e3%81%84%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%9f/</link>
		<comments>http://blog.dealforest.net/2008/11/vimm3-%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%81%ab%e3%81%84%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%9f/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 17:18:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vi]]></category>
		<category><![CDATA[seminor]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.dealforest.net/?p=130</guid>
		<description><![CDATA[今日は秋葉原に VimM#3 の勉強会に行ってきた。
元上司??の同じ職場で働いてる人とあったり、Flash の方での知り合いの同僚の人に
あったりだとかとても楽しいかった。
肝心の勉強会はというと、脱初心者がテーマなのにも関わらず初心者らし〜人はいなかった気がする。
はやく visual mode を卒業せねばと思う次第です。
内容的には取り組み方、マクロ、レジスタ、plugin、text objectなど多岐にわたってて
めっさんこ良かった。なんか分かった気がした。
text object や Control + } とかが衝撃だった。
全員が言ってたのは、それ help に書いてるよ。
つまりは help に全てがかいてあるから調べ方さえみにつけば
意外にスラスラ上達するのやも。
ということで忘れない間にメモメモ。
発表内容
Vimで効率的なテキスト編集 id:ukstudio
エディターはプログラマにとって、武士でいう刀みたいなもんだ。かっこよす。
非効率な作業をみつけ、それを解決する方法を考える(キーマッピング, vim script, macro)、
そして最後にそれを習慣にするとのこと。
最後の習慣にするってのが凄い大事。一気に色々覚えようとしても無理。
日々の鍛錬とはまさにこのこと。
新しいことを覚えて習慣化して次のを覚える。
あとは tips で
検索(*), ファイルの移動(gf), 置換, キーワード補完(control + n, p)  の使い方があった。
vimrc を他の人のを読み、誰かに聞き、vim-users.jp で聞けば相当、力がつくとのこと。
マクロ id:taku_o
通称:マクロ厨ことななしの vim 使いさんの発表
最初はマクロの初歩的な使い方からはじまった。
と思いきや、気づけばレジスタの話になっていて
速攻意味不明。。。。。
と思いきや、説明がすごい分かりやすくてとても助かった。
マクロを作るときはレジスタが a-zA-Z0-9 と作れるが
基本が小文字を使うらしい。大文字だと小文字のレジスタが登録されていると追記されるらしい。
0は頻繁にかきかわり、1-9 はレジスタの番号がよくずれるためらしい。

:display &#60;- レジスタの情報を表示して確認できる
Control + r [レジスタ] &#60;- これでレジスタの値を貼付ける


マクロいいとこ

カーソル移動能力を使って編集箇所を簡単に細かくしていできる
頭、使わない。簡単
作って、即使える
何回でも実行できる



駄目なとこ

マクロを登録するコストがかかる
登録済みのマクロのミスを修正しづらい
条件分岐はしない方がいい
処理速度が遅い



むいてるとこ

少し大きめの編集処理
6-10万件
使い捨ての処理
スクリプトを組もうとすうと面倒なもの


他にもテンプレートの修正や、簡単なテストデータの作成にはむいている。
vimgrep, copen, cn これほんと便利。
これが今までしらなかったのが損というくらいのしろもの。
あと、expression レジスタもあった。これは便利！！
んで、改心の出来のマクロが組めたら vimrc に let @[レジスタ] [...]]]></description>
			<content:encoded><![CDATA[<p>今日は秋葉原に VimM#3 の勉強会に行ってきた。<br />
元上司??の同じ職場で働いてる人とあったり、Flash の方での知り合いの同僚の人に<br />
あったりだとかとても楽しいかった。</p>
<p>肝心の勉強会はというと、脱初心者がテーマなのにも関わらず初心者らし〜人はいなかった気がする。<br />
はやく visual mode を卒業せねばと思う次第です。</p>
<p>内容的には取り組み方、マクロ、レジスタ、plugin、text objectなど多岐にわたってて<br />
めっさんこ良かった。なんか分かった気がした。<br />
text object や Control + } とかが衝撃だった。</p>
<p>全員が言ってたのは、それ help に書いてるよ。<br />
つまりは help に全てがかいてあるから調べ方さえみにつけば<br />
意外にスラスラ上達するのやも。</p>
<p>ということで忘れない間にメモメモ。</p>
<h2>発表内容</h2>
<h3>Vimで効率的なテキスト編集 id:ukstudio</h3>
<p>エディターはプログラマにとって、武士でいう刀みたいなもんだ。かっこよす。</p>
<p>非効率な作業をみつけ、それを解決する方法を考える(キーマッピング, vim script, macro)、<br />
そして最後にそれを習慣にするとのこと。</p>
<p>最後の習慣にするってのが凄い大事。一気に色々覚えようとしても無理。<br />
日々の鍛錬とはまさにこのこと。<br />
新しいことを覚えて習慣化して次のを覚える。</p>
<p>あとは tips で<br />
検索(*), ファイルの移動(gf), 置換, キーワード補完(control + n, p)  の使い方があった。</p>
<p>vimrc を他の人のを読み、誰かに聞き、vim-users.jp で聞けば相当、力がつくとのこと。</p>
<h3>マクロ id:taku_o</h3>
<p>通称:マクロ厨ことななしの vim 使いさんの発表</p>
<p>最初はマクロの初歩的な使い方からはじまった。<br />
と思いきや、気づけばレジスタの話になっていて<br />
速攻意味不明。。。。。<br />
と思いきや、説明がすごい分かりやすくてとても助かった。</p>
<p>マクロを作るときはレジスタが a-zA-Z0-9 と作れるが<br />
基本が小文字を使うらしい。大文字だと小文字のレジスタが登録されていると追記されるらしい。<br />
0は頻繁にかきかわり、1-9 はレジスタの番号がよくずれるためらしい。</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">:display &lt;- レジスタの情報を表示して確認できる
Control + r [レジスタ] &lt;- これでレジスタの値を貼付ける</pre></div></div>

<ul>
<li>マクロいいとこ</li>
<ul>
<li>カーソル移動能力を使って編集箇所を簡単に細かくしていできる</li>
<li>頭、使わない。簡単</li>
<li>作って、即使える</li>
<li>何回でも実行できる</li>
</ul>
</ul>
<ul>
<li>駄目なとこ</li>
<ul>
<li>マクロを登録するコストがかかる</li>
<li>登録済みのマクロのミスを修正しづらい</li>
<li>条件分岐はしない方がいい</li>
<li>処理速度が遅い</li>
</ul>
</ul>
<ul>
<li>むいてるとこ</li>
<ul>
<li>少し大きめの編集処理</li>
<li>6-10万件</li>
<li>使い捨ての処理</li>
<li>スクリプトを組もうとすうと面倒なもの</li>
</ul>
</ul>
<p>他にもテンプレートの修正や、簡単なテストデータの作成にはむいている。</p>
<p>vimgrep, copen, cn これほんと便利。<br />
これが今までしらなかったのが損というくらいのしろもの。<br />
あと、expression レジスタもあった。これは便利！！</p>
<p>んで、改心の出来のマクロが組めたら vimrc に let @[レジスタ] = &#8220;マクロ&#8221; として書けばいい。<br />
マクロの注意点は、インクリメントやデクリメントを使用すると桁数がずれたりすると<br />
j, k, l, m などの移動系がやられるので基本はつかわないようにする。<br />
検索で移動するのが吉。</p>
<h3>俺の.vimrcを見ろ!PHP使いの為の設定とプラグイン id:halt</h3>
<p>最初エディタなんてなんでもいいと思ってた。<br />
○○○○life さんの vim さばきを見てから vim をさわりだしたとのこと。<br />
本気でとりくみだして１年くらいだとか。</p>
<p>オススメのプラグイン<br />
プラグイン紹介</p>
<p>AutoComplPop<br />
  &#8211; 自動的に補完してくる<br />
FuzzyFinder<br />
  &#8211; バッファに開く<br />
  &#8211; 空気を読んだファイルの選択ができる<br />
FlyQuickFixMake<br />
  &#8211; 保存をトリガーにコンパイルエラーの行を分かりやすいように表示</p>
<p>PHP のリファレンスを vim help の形式に変換して vim 上でみてた。<br />
あれはほんと便利。全ての言語があったほうがいいと思った。<br />
簡単にコピペもできるし、調べるまでのコストも低いし、効率化間違いなし。<br />
仮にかぶったとしても :tNext, :tPrev で次のに飛べる。</p>
<p>あとは PHP の文法チェックを vimrc の中でしてた。</p>
<h3>operator, the true power of Vim id:kana</h3>
<p>vim ユーザのランクづけをしてた。<br />
最初、visual mode を使うようになり、習熟とともに visual mode をつかわなくなり<br />
text object を使いこなせるようになり、その後、満足できなくなり<br />
text object を新しく作り、新しい operator を作る！！とのことらしい。</p>
<p>ざっっくりというとこんな感じ。凄い濃い内容だった。<br />
しかし、text object が凄い便利だった。<br />
ちょっと感動。</p>
<p>ほんとうに色々なことができて<br />
これくらいできるのが知れば、やるもんですよ。<br />
上を知る機会があるってのは、やっぱいいもんだ。</p>
<p>VimM#3 幹事の id:ukstudio、発表者の方々ほんとうにお疲れ様でした！！！<br />
ありがとうございます。</p>
<h3>関連資料</h3>
<p><a href="http://vim.g.hatena.ne.jp/ka-nacht/20081123/1227366577">VimM#3で答えそびれた質問に対する回答</a><br />
<a href="http://ukstudio.jp/2008/11/23/vimm3-2/">VimM#3を開催してきました</a><br />
<a href="http://d.hatena.ne.jp/taku-o/20081119/1227102031">VimM#3懇親会参加希望者様へ</a><br />
<a href="http://d.hatena.ne.jp/tor_ozaki/20081122/1227366147">VimM#3に行ってきました</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dealforest.net/2008/11/vimm3-%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%81%ab%e3%81%84%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>viでctagsをつかってsparkする件</title>
		<link>http://blog.dealforest.net/2008/09/vi%e3%81%a7ctags%e3%82%92%e3%81%a4%e3%81%8b%e3%81%a3%e3%81%a6spark%e3%81%99%e3%82%8b%e4%bb%b6/</link>
		<comments>http://blog.dealforest.net/2008/09/vi%e3%81%a7ctags%e3%82%92%e3%81%a4%e3%81%8b%e3%81%a3%e3%81%a6spark%e3%81%99%e3%82%8b%e4%bb%b6/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:14:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vi]]></category>
		<category><![CDATA[ctags]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://blog.dealforest.net/?p=24</guid>
		<description><![CDATA[ctagsが便利そうだったので使ってみることにする。
簡単に説明するとメソッドやクラスから簡単に定義元のソースへ jump できる感じです。
まず default のままだと ctags の language には actionscript がないので追加します。
~/.ctags をつくればいいので下記をコピペします。

--langdef=actionscript
--langmap=actionscript:.as
--regex-actionscript=/^&#91; \t&#93;*&#91;&#40;private&#124; public&#124;static&#41; &#40; \t&#41;&#93;*function&#91; \t&#93;+&#40;&#91;A-Za-z0-9_&#93;+&#41;&#91; \t&#93;*\&#40;/\1/f, function, functions/
--regex-actionscript=/^&#91; \t&#93;*&#91;&#40;public&#41; &#40; \t&#41;&#93;*function&#91; \t&#93;+&#40;set&#124;get&#41; &#91; \t&#93;+&#40;&#91;A-Za-z0-9_&#93;+&#41;&#91; \t&#93;*\&#40;/\1 \2/p,property, propertis/
--regex-actionscript=/^&#91; \t&#93;*&#91;&#40;private&#124; public&#124;static&#41; &#40; \t&#41;&#93;*var&#91; \t&#93;+&#40;&#91;A-Za-z0-9_&#93;+&#41;&#91; \t&#93;*/\1/v,variable, variables/
--regex-actionscript=/.*\.prototype \.&#40;&#91;A-Za-z0-9 &#93;+&#41;=&#40;&#91; \t&#93;?&#41;function&#40; &#91; \t&#93;?&#41;*\&#40;/\1/ f,function, functions/
--regex-actionscript=/^&#91; \t&#93;*class&#91; \t&#93;+&#40;&#91;A-Za-z0-9_&#93;+&#41;&#91; \t&#93;*/\1/c,class, classes/

あとは簡単。

!/bin/sh
&#160;
echo 'Generating tags for spark ...'
SPARK_DIR=~/repos/svn/spark/as3
ctags -f ~/.vim/tags/actionscript/spark.tags --recurse [...]]]></description>
			<content:encoded><![CDATA[<p>ctagsが便利そうだったので使ってみることにする。<br />
簡単に説明するとメソッドやクラスから簡単に定義元のソースへ jump できる感じです。</p>
<p>まず default のままだと ctags の language には actionscript がないので追加します。<br />
~/.ctags をつくればいいので下記をコピペします。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">--langdef</span>=actionscript
<span style="color: #660033;">--langmap</span>=actionscript:.as
<span style="color: #660033;">--regex-actionscript</span>=<span style="color: #000000; font-weight: bold;">/</span>^<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>private<span style="color: #000000; font-weight: bold;">|</span> public<span style="color: #000000; font-weight: bold;">|</span>static<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span> \t<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>A-Za-z0-<span style="color: #000000;">9</span>_<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span>\<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>\<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>f, <span style="color: #000000; font-weight: bold;">function</span>, functions<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--regex-actionscript</span>=<span style="color: #000000; font-weight: bold;">/</span>^<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>public<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span> \t<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">set</span><span style="color: #000000; font-weight: bold;">|</span>get<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>A-Za-z0-<span style="color: #000000;">9</span>_<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span>\<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>\<span style="color: #000000;">1</span> \<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">/</span>p,property, propertis<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--regex-actionscript</span>=<span style="color: #000000; font-weight: bold;">/</span>^<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>private<span style="color: #000000; font-weight: bold;">|</span> public<span style="color: #000000; font-weight: bold;">|</span>static<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span> \t<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span>var<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>A-Za-z0-<span style="color: #000000;">9</span>_<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*/</span>\<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>v,variable, variables<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--regex-actionscript</span>=<span style="color: #000000; font-weight: bold;">/</span>.<span style="color: #000000; font-weight: bold;">*</span>\.prototype \.<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>A-Za-z0-<span style="color: #000000;">9</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>?<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>?<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">*</span>\<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>\<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span> f,<span style="color: #000000; font-weight: bold;">function</span>, functions<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--regex-actionscript</span>=<span style="color: #000000; font-weight: bold;">/</span>^<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*</span>class<span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>A-Za-z0-<span style="color: #000000;">9</span>_<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> \t<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">*/</span>\<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>c,class, classes<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>あとは簡単。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">!/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sh</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Generating tags for spark ...'</span>
<span style="color: #007800;">SPARK_DIR</span>=~<span style="color: #000000; font-weight: bold;">/</span>repos<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>spark<span style="color: #000000; font-weight: bold;">/</span>as3
ctags <span style="color: #660033;">-f</span> ~<span style="color: #000000; font-weight: bold;">/</span>.vim<span style="color: #000000; font-weight: bold;">/</span>tags<span style="color: #000000; font-weight: bold;">/</span>actionscript<span style="color: #000000; font-weight: bold;">/</span>spark.tags <span style="color: #660033;">--recurse</span> <span style="color: #660033;">--totals</span> \
    <span style="color: #660033;">--exclude</span>=blib \
    <span style="color: #660033;">--exclude</span>=.svn \
    <span style="color: #660033;">--exclude</span>=<span style="color: #ff0000;">'*~'</span> \
    <span style="color: #660033;">--languages</span>=actionscript \
    <span style="color: #007800;">$SPARK_DIR</span><span style="color: #000000; font-weight: bold;">/*/</span>trunk<span style="color: #000000; font-weight: bold;">/</span>src <span style="color: #007800;">$SPARK_DIR</span><span style="color: #000000; font-weight: bold;">/</span>as3<span style="color: #000000; font-weight: bold;">/*/</span>src</pre></div></div>

<p>こんな shell を作ります。<br />
ちなみに sample や変なソースも見るとめんどうなので<br />
{project}/src,  {project}/trunk/src 以下のみを読み込むようにしました。<br />
svn upしたタイミング、もしくは1日1回とかで更新すればいいと思います。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">autocmd FileType actionscript :<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">tags</span>=~<span style="color: #000000; font-weight: bold;">/</span>.vim<span style="color: #000000; font-weight: bold;">/</span>tags<span style="color: #000000; font-weight: bold;">/</span>actionscript<span style="color: #000000; font-weight: bold;">/</span>spark.tags</pre></div></div>

<p>あとは .vimrc に追記すると使えます。</p>
<p>感想は、まぢで便利！！！！！！！<br />
ほんと Spark!!!!!!!!!!!!! できますw<br />
デモ画像をのっとくんでイメージわくと幸いです。<br />
デモ画像では Thread を使ってやってます。おかりいたします。。。</p>
<p>いあ〜満足！！！</p>
<p><a title="こんな感じで Thread に foucus " rel="lightbox[roadtrip]" href="http://blog.dealforest.net/wp-content/uploads/2008/09/terminal2.png"><img src="http://blog.dealforest.net/wp-content/uploads/2008/09/terminal2.png" alt="test1" width="40%" height="40%" /></a></p>
<p><a title="ctrl + ] でこの画面に切り替わります。" rel="lightbox[roadtrip]" href="http://blog.dealforest.net/wp-content/uploads/2008/09/terminal1.png"><img src="http://blog.dealforest.net/wp-content/uploads/2008/09/terminal1.png" alt="test1" width="40%" height="40%" /></a></p>
<p>*参考資料<br />
<a href="http://vim-taglist.sourceforge.net/extend.html">http://vim-taglist.sourceforge.net/extend.html</a><br />
<a href="http://archiva.jp/web/tool/vim_ctags.html">http://archiva.jp/web/tool/vim_ctags.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dealforest.net/2008/09/vi%e3%81%a7ctags%e3%82%92%e3%81%a4%e3%81%8b%e3%81%a3%e3%81%a6spark%e3%81%99%e3%82%8b%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
