<?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>taichino.com &#187; emacs</title>
	<atom:link href="http://taichino.com/category/engineer-life/emacs/feed" rel="self" type="application/rss+xml" />
	<link>http://taichino.com</link>
	<description>永遠のネバーランド</description>
	<lastBuildDate>Sat, 04 Feb 2012 13:33:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>.emacsを整理した</title>
		<link>http://taichino.com/engineer-life/1894</link>
		<comments>http://taichino.com/engineer-life/1894#comments</comments>
		<pubDate>Sun, 29 Aug 2010 08:06:52 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[技術]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=1894</guid>
		<description><![CDATA[本当は去年の年末に行うはずだった.emacsの整理ですが、中々着手できず放置してました。しかし先日「Emacsテクニックバイブル」が発売され、この絶好のタイミングを逃せば、またいつになるか分からなかったので、重い腰を上げて以下を目標に整理してみました。 .emacsを分割して整理する リポジトリ管理下に置いて適宜改善できるようにする 最近のEmacs事情に少しキャッチアップする まず.emacsを分割して、使ってない箇所を消してみました。分割自体は、かなりいい加減です。init-loaderを使うのが常套手段のようですが手元で動かないので、それぞれのファイルを手動でロードしています。課題はbase.elにまだ設定が集中していることです。かといって分割しすぎても管理が大変なので難しいところですね。 ;; ロードパス &#40;add-to-list 'load-path &#34;~/.emacs.d&#34;&#41; &#40;add-to-list 'load-path &#34;~/.emacs.d/lisp&#34;&#41; &#40;add-to-list 'load-path &#34;~/.emacs.d/lisp/apel&#34;&#41; &#40;add-to-list 'load-path &#34;~/.emacs.d/lisp/emu&#34;&#41; &#40;add-to-list 'load-path &#34;~/.emacs.d/lisp/howm&#34;&#41; &#160; ;; 実行パス &#40;add-to-list 'exec-path &#34;/usr/local/bin&#34;&#41; &#40;add-to-list 'exec-path &#34;/opt/local/bin&#34;&#41; &#160; ;; auto-install &#40;require 'auto-install&#41; &#40;add-to-list 'load-path auto-install-directory&#41; &#40;auto-install-update-emacswiki-package-name t&#41; &#40;auto-install-compatibility-setup&#41; &#160; ;; 基本設定 &#40;load &#34;init/base.el&#34;&#41; &#160; ;; 表示、window関連の設定 &#40;load &#34;init/display.el&#34;&#41; &#160; ;; global-set-key [...]]]></description>
			<content:encoded><![CDATA[<p>本当は去年の年末に行うはずだった.emacsの整理ですが、中々着手できず放置してました。しかし先日「<a href="http://www.amazon.co.jp/gp/product/4774143278?ie=UTF8&#038;tag=creatorsland-22&#038;linkCode=as2&#038;camp=247&#038;creative=1211&#038;creativeASIN=4774143278">Emacsテクニックバイブル</a><img src="http://www.assoc-amazon.jp/e/ir?t=creatorsland-22&#038;l=as2&#038;o=9&#038;a=4774143278" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」が発売され、この絶好のタイミングを逃せば、またいつになるか分からなかったので、重い腰を上げて以下を目標に整理してみました。</p>
<ul>
<li> .emacsを分割して整理する</li>
<li> リポジトリ管理下に置いて適宜改善できるようにする</li>
<li> 最近のEmacs事情に少しキャッチアップする</li>
</ul>
<p><span id="more-1894"></span></p>
<p>まず.emacsを分割して、使ってない箇所を消してみました。分割自体は、かなりいい加減です。init-loaderを使うのが常套手段のようですが手元で動かないので、それぞれのファイルを手動でロードしています。課題はbase.elにまだ設定が集中していることです。かといって分割しすぎても管理が大変なので難しいところですね。</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">;; ロードパス</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/lisp&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/lisp/apel&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/lisp/emu&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/.emacs.d/lisp/howm&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 実行パス</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'exec-path <span style="color: #ff0000;">&quot;/usr/local/bin&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'exec-path <span style="color: #ff0000;">&quot;/opt/local/bin&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; auto-install</span>
<span style="color: #66cc66;">&#40;</span>require 'auto-install<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path auto-install-directory<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>auto-install-update-emacswiki-package-<span style="color: #b1b100;">name</span> t<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>auto-install-compatibility-setup<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 基本設定</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/base.el&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 表示、window関連の設定</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/display.el&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; global-set-key</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/keybind.el&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; howm/org</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/memo.el&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 各種プログラミング用メジャーモード</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/programming.el&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;; 自分で追加した関数など</span>
<span style="color: #66cc66;">&#40;</span>load <span style="color: #ff0000;">&quot;init/self.el&quot;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>設定ファイル一式を<a href="http://github.com/taichino/emacs_config">github</a>にあげて管理する事にしました。プライベートリポジトリだと、ついつい汚くなるので駄目でした。本当は.emacs.d以下すべてを置いておきたいですけど、リポジトリが公開状態なので良いのかどうなのか。ちょっと様子見です。</p>
<p>今回の整理での気分的に大きな収穫は以下です。Carbonが素晴らしいと触れ回っていたのですが、しれっとCocoa Emacsに乗り換えてしまいました。</p>
<ul>
<li><strong>magit</strong>: gitをemacsから使えるようになった</li>
<li><strong>Cocoa Emacs</strong>: magitを導入するためにCarbonから乗り換えた</li>
<li><strong>org-mode</strong>をhowmのメジャーモードで使うようにした</li>
<li><strong>moccur-edit</strong>: occurの検索結果を直接編集して元のバッファに反映させる</li>
<li><strong>sequential-command</strong>: C-a, C-eがパワーアップ</li>
</ul>
<p>まだ改善の余地だらけですが、とにかくも整理して管理下に置いたので、ようやく.emacsも自分も育てていける感じになって、大変気分がいいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/1894/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3をfdbとemacsでデバッグする</title>
		<link>http://taichino.com/engineer-life/emacs/807</link>
		<comments>http://taichino.com/engineer-life/emacs/807#comments</comments>
		<pubDate>Mon, 10 Aug 2009 16:06:12 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=807</guid>
		<description><![CDATA[さっきGAEをpdbでデバッグすると書いたんですが、それで思い出したので便乗エントリです。as3をデバッグするのにflexSDKに付属のfdbを使うかと思いますが、Emacsからどうやって使うかという話。 結論は簡単でM-x gdbを使います。gdb &#8211;annotate=1の様な表示が出るので消去してfdbを起動します。 M-x gdb /usr/local/flex/bin/fdb -f /path/to/swf ここで注意するのは以下の２点です。 デバッグを行うswfの作成時に-debug=trueオプションをつける fdbの起動時に-fオプションをつける これでas3でもいつものデバッグが出来るようになりましたね。]]></description>
			<content:encoded><![CDATA[<p>さっき<a href="http://taichino.com/programming/801">GAEをpdbでデバッグすると書いた</a>んですが、それで思い出したので便乗エントリです。as3をデバッグするのにflexSDKに付属のfdbを使うかと思いますが、Emacsからどうやって使うかという話。</p>
<p><span id="more-807"></span></p>
<p>結論は簡単でM-x gdbを使います。gdb &#8211;annotate=1の様な表示が出るので消去してfdbを起動します。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">M-x gdb
/usr/local/flex/bin/fdb -f /path/to/swf</pre></div></div>

<p>ここで注意するのは以下の２点です。</p>
<ul>
<li> デバッグを行うswfの作成時に-debug=trueオプションをつける </li>
<li> fdbの起動時に-fオプションをつける </li>
</ul>
<p>これでas3でもいつものデバッグが出来るようになりましたね。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/emacs/807/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python-modeの時は2タブにしたい</title>
		<link>http://taichino.com/engineer-life/emacs/484</link>
		<comments>http://taichino.com/engineer-life/emacs/484#comments</comments>
		<pubDate>Mon, 29 Jun 2009 06:25:47 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=484</guid>
		<description><![CDATA[フックに引っ掛ければいいっぽいですね。 &#40;add-hook 'python-mode-hook '&#40;lambda&#40;&#41; &#40;setq indent-tabs-mode nil&#41; &#40;setq indent-level 2&#41; &#40;setq tab-width 2&#41;&#41;&#41;]]></description>
			<content:encoded><![CDATA[<p>フックに引っ掛ければいいっぽいですね。</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-hook 'python-mode-hook
 '<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> indent-tabs-mode <span style="color: #b1b100;">nil</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> indent-level <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> tab-width <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/emacs/484/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Carbon Emacsで快適にActionScriptを書きたい件</title>
		<link>http://taichino.com/engineer-life/emacs/388</link>
		<comments>http://taichino.com/engineer-life/emacs/388#comments</comments>
		<pubDate>Sun, 24 May 2009 17:32:08 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[ctags]]></category>
		<category><![CDATA[rascut]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=388</guid>
		<description><![CDATA[さて表題の件。printfデバッグさえできればある程度は書けますが、書いてるコード規模が大きくなって、厳しくなってきたので、環境を少し整える事にしました。 まずは結論から。以下の通り結構快適になりました。 before java-modeでasファイルを編集 ログファイルにデバッグ出力して、tail -fで確認。 after actionscript-modeでasファイルを編集 printfデバッグでキツいところはブレークポイント ctagsでタグテーブル作成してタグジャンプ rascutで自動コンパイル&#038;ブラウザリロード log.as導入によりfirebug上でのログ確認 一つずつ見ていきます。 1. actionscript-modeでasファイルを編集 以前にactionscript-modeを入れようとして、挫折したので、java-modeで代用していました。これでも、あまり問題は無いのですが、for each構文等、部分的にインデントがずれるという事がありました。 そこで再度チャレンジしてみたところ、あっけなく動作しました。 ココからactionscript-mode.elをパスが通った場所に置いて、.emacsを編集するだけでOKです。 &#40;require 'actionscript-mode&#41; &#40;setq auto-mode-alist &#40;append '&#40;&#40;&#34;\\.as$&#34; . actionscript-mode&#41;&#41; auto-mode-alist&#41;&#41; 以前はcc-modeを古いバージョンを入れる必要があったと思うのですが、現在は必要ないようです。手元のバージョンは以下の通りです。 M-x c-version (cc-modeのバージョン) Using CC Mode version 5.31.6 M-x version (emacsのバージョン) GNU Emacs 22.3.1 (i386-apple-darwin9.6.0, Carbon Version 1.6.0) of 2009-01-03 on seijiz.local 2. printfデバッグでキツいところはブレークポイント やはりprintfデバッグには限界がありまして、特にライブラリ等、他の人が書いたコードをデバッグする際はデバッガを使いたいと強く感じます。幸いにflex sdkにはfdbというgdb類似のデバッガが存在しますので、これを使う事にしました。emacs上から実行すればコマンド履歴も使えます。 [...]]]></description>
			<content:encoded><![CDATA[<p>さて表題の件。<a href="http://taichino.com/?p=106">printfデバッグさえできれば</a>ある程度は書けますが、書いてるコード規模が大きくなって、厳しくなってきたので、環境を少し整える事にしました。</p>
<p><span id="more-388"></span></p>
<p>まずは結論から。以下の通り結構快適になりました。</p>
<p><strong>before</strong></p>
<ul>
<li>	java-modeでasファイルを編集</li>
<li>	ログファイルにデバッグ出力して、tail -fで確認。</li>
</ul>
<p><strong>after</strong></p>
<ol>
<li>	actionscript-modeでasファイルを編集</li>
<li>	printfデバッグでキツいところはブレークポイント</li>
<li>	ctagsでタグテーブル作成してタグジャンプ</li>
<li> rascutで自動コンパイル&#038;ブラウザリロード </li>
<li> log.as導入によりfirebug上でのログ確認 </li>
</ol>
<p><!--more--><br />
一つずつ見ていきます。</p>
<p><strong>1. actionscript-modeでasファイルを編集</strong><br />
以前にactionscript-modeを入れようとして、挫折したので、java-modeで代用していました。これでも、あまり問題は無いのですが、for each構文等、部分的にインデントがずれるという事がありました。</p>
<p>そこで再度チャレンジしてみたところ、あっけなく動作しました。<br />
<a href="http://www.emacswiki.org/emacs/actionscript-mode-haas-7.0.el">ココ</a>からactionscript-mode.elをパスが通った場所に置いて、.emacsを編集するだけでOKです。</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>require 'actionscript-mode<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> auto-mode-alist
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.as$&quot;</span> <span style="color: #66cc66;">.</span> actionscript-mode<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
              auto-mode-alist<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>以前はcc-modeを古いバージョンを入れる必要があったと思うのですが、現在は必要ないようです。手元のバージョンは以下の通りです。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">M-x c-version (cc-modeのバージョン)
  Using CC Mode version 5.31.6
M-x version (emacsのバージョン)
  GNU Emacs 22.3.1 (i386-apple-darwin9.6.0, Carbon Version 1.6.0) of 2009-01-03 on seijiz.local</pre></div></div>

<p><strong>2. printfデバッグでキツいところはブレークポイント</strong><br />
やはりprintfデバッグには限界がありまして、特にライブラリ等、他の人が書いたコードをデバッグする際はデバッガを使いたいと強く感じます。幸いにflex sdkにはfdbというgdb類似のデバッガが存在しますので、これを使う事にしました。emacs上から実行すればコマンド履歴も使えます。<br />
M-x gdbで実行するデバッガを指定します。僕は/usr/local/flex/bin/fdbに置いています。</p>
<p><strong>3. ctagsでタグテーブル作成してタグジャンプ</strong><br />
ブレークポイントを張れるようになったのは良いのですが、ステップ実行をやっているとタグジャンプをしたくなります。ただgtags,etags,ctagsがいずれもActionScriptに対応しておらず、タグファイルが作れない！と一時は悶絶したのですが、幸いctagsをActionScriptに対応させる方法が<a href="http://www.turdhead.com/2007/10/09/almost-perfect-actionscript-code-browsing-with-jedits-sidekick-panel/">見つかりました</a>。</p>
<p>手順は以下の通り。</p>
<ul>
<li> ctags-5.7.tar.gzを<a href="http://prdownloads.sourceforge.net/ctags/ctags-5.7.tar.gz">ダウンロード</a>して解凍</li>
<li> actionscript.cを<a href="http://www.turdhead.com/downloads/actionscript.c">ダウンロード</a></li>
<li> source.makとparsers.hを編集</li>
<li> make install </li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>prdownloads.sourceforge.net<span style="color: #000000; font-weight: bold;">/</span>ctags<span style="color: #000000; font-weight: bold;">/</span>ctags-<span style="color: #000000;">5.7</span>.tar.gz
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> zxvf ctags-<span style="color: #000000;">5.7</span>.tar.gz
$ <span style="color: #7a0874; font-weight: bold;">cd</span> ctags-<span style="color: #000000;">5.7</span>
$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.turdhead.com<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>actionscript.c
$ <span style="color: #c20cb9; font-weight: bold;">cp</span> source.mak source.mak.bak
$ <span style="color: #c20cb9; font-weight: bold;">vim</span> source.mak
$ <span style="color: #c20cb9; font-weight: bold;">diff</span> <span style="color: #660033;">-U</span> <span style="color: #000000;">1</span> source.mak.bak source.mak
<span style="color: #000000; font-weight: bold;">@@</span> -<span style="color: #000000;">10</span>,<span style="color: #000000;">2</span> +<span style="color: #000000;">10</span>,<span style="color: #000000;">3</span> <span style="color: #000000; font-weight: bold;">@@</span>
 SOURCES = \
+       actionscript.c \
        args.c \
<span style="color: #000000; font-weight: bold;">@@</span> -<span style="color: #000000;">61</span>,<span style="color: #000000;">2</span> +<span style="color: #000000;">62</span>,<span style="color: #000000;">3</span> <span style="color: #000000; font-weight: bold;">@@</span>
 OBJECTS = \
+       actionscript.$<span style="color: #7a0874; font-weight: bold;">&#40;</span>OBJEXT<span style="color: #7a0874; font-weight: bold;">&#41;</span> \
        args.$<span style="color: #7a0874; font-weight: bold;">&#40;</span>OBJEXT<span style="color: #7a0874; font-weight: bold;">&#41;</span> \
$ <span style="color: #c20cb9; font-weight: bold;">cp</span> parsers.h parsers.h.bak
$ <span style="color: #c20cb9; font-weight: bold;">vim</span> parsers.h
$ <span style="color: #c20cb9; font-weight: bold;">diff</span> <span style="color: #660033;">-U</span> <span style="color: #000000;">1</span> parsers.h.bak parsers.h
<span style="color: #000000; font-weight: bold;">@@</span> -<span style="color: #000000;">18</span>,<span style="color: #000000;">2</span> +<span style="color: #000000;">18</span>,<span style="color: #000000;">3</span> <span style="color: #000000; font-weight: bold;">@@</span>
 <span style="color: #666666; font-style: italic;">#define PARSER_LIST \</span>
+       ActionScriptParser, \
        AsmParser, \
$ .<span style="color: #000000; font-weight: bold;">/</span>configure
$ <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>上記手順でActionScriptに対応したctagsができるので、あとは-eオプションを使用して、Emacs用のタグファイルを出力させれば、漸くEmacs上でActionScriptのタグジャンプが出来るようになります。</p>
<p><strong>4. rascutで自動コンパイル&#038;ブラウザリロード</strong><br />
今まで知らなかったのですが、rascutというツールを使うと、コンパイルとブラウザによるswf実行を自動化してくれます。これは実際に使ってみないと便利さが伝わらないかもしれませんが、凄く良いリズムで開発出来るようになります。一度は騙されたと思って使ってみるのが良いと思います。</p>
<p>手元では以下でインストールできました。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem update <span style="color: #660033;">--system</span>
gem <span style="color: #c20cb9; font-weight: bold;">install</span> rascut <span style="color: #660033;">--include-dependencies</span></pre></div></div>

<p>使い方は<a href="http://d.hatena.ne.jp/nitoyon/20070914/how_to_install_rascut">ココ</a>を参考にさせて頂きました。なお言語設定等で問題が起こるらしい記述が結構見つかりましたが、手元では発生していません。</p>
<p><strong>5. log.as導入によりfirebug上でのログ確認</strong><br />
個人的にはrascutとセットで導入すると効果が高いと思います。デフォルトのtraceだとログファイルにデバッグ出力ですが、この関数を導入するとfirebug上でログの確認が出来ます。これでterminalでtail -fしてた人はterminalが必要なくなりますし、emacs上のshellでtail -fしてた人もログ用のバッファを表示しなくても良くなるので画面が広くなります。</p>
<p>インストール、使い方は<a href="http://subtech.g.hatena.ne.jp/secondlife/20070219/1171872801">ココ</a>を参考にさせて頂きました。</p>
<p>
以上で、今回行った設定は終了です。環境も整ったところで、ガリガリコード書いていきまっしょい。ちなみにFlexBuilderはインストールしてみたのですが、ぱっと動かなかったので断念しました。</p>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/emacs/388/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>emacsで正規表現による置換を快適に行いたい件</title>
		<link>http://taichino.com/engineer-life/emacs/353</link>
		<comments>http://taichino.com/engineer-life/emacs/353#comments</comments>
		<pubDate>Thu, 30 Apr 2009 19:11:41 +0000</pubDate>
		<dc:creator>taichino</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[正規表現]]></category>

		<guid isPermaLink="false">http://taichino.com/?p=353</guid>
		<description><![CDATA[emacsで正規表現による置換を結構快適に使えるようになったので記録しておきます。 emacs標準コマンドのM-x replace-regexpは拡張正規表現と呼ばれる構文に対応していないので、スクリプト言語等で使用できる正規表現よりも機能が低く使いにくいのが問題でした。 結論を先に書きますと、以下手順でemacsから快適に正規表現による置換を行えるようになりました。 .zshrcに[[ $EMACS = t ]と書いてemacsから使用するシェルをzshに設定し .zshenvにsetopt RC_QUOTESと書いて&#8217;のネストを許可し、 M-!やM-&#124;から実行したコマンドの履歴もシェルと共有して emacs上でC-u M-&#124;からperl -nle &#8216;パターン;print&#8217;で置換 さて、始まりは前の職場の人のperlの正規表現は凄いという発言です。 その時はあまり興味が無かったのですが、HTML解析を最近頻繁にするようになると 綺麗にツリー構造が作れない場合が多く、仕方なしに正規表現を使わないといけなくなったのでどうせならという事で調べる事にしました。 少し調べてその人の発言内容は、先読み、後読みの事だと知りました。 そしてもう少し調べていくと、最近では先読み、後読みはperlでなくてもphp,python,ruby等でも使えるのですが、emacsのM-x replace-regexpでは使えないという事が解りました。 能力に違いのある複数の正規表現の使い方を覚えておく事に強い抵抗感があったので、emacsのM-x replace-regexpは使いたくありませんでした。かといってperlスクリプトを毎回書くのは面倒すぎて正規表現を使わなくなってしまいそうです。 しばらく悶々としていたのですが、perlにはnオプションというのが存在していて、l,eと組み合わせてperl -nle &#8216;スクリプト&#8217;と書くと以下と同等の処理を実行できる事を知りました。 while&#40;&#60;&#62;&#41; &#123; chomp&#40;$_&#41;; スクリプト &#125; これはかなり便利でemacs上からC-u M-&#124;からのコマンド実行と組み合わせれば、 perlでの置換をreplace-regexpと同じ間隔で使用する事が出来ます。 しばらく気分よくこの状態で使っていたのですが、問題がまだありました。 それはM-!, M-&#124;で実行したコマンドの履歴がemacsの再起動の度に消えてしまう事です。 慣れて正規表現を書くのは退屈な作業になってきてましたので、何度も同じ正規表現等書きたくありません。なんとか履歴を残したいということを思い、色々調べてみましたが、上手く見つからず行き詰まっていたのですが、はてな人力検索に質問してみたところ、ドンピシャの回答を頂きまして、晴れてシェルのヒストリと共有する事が出来るようになりました。(内容はリンク先を参照ください) またzshのRC_QUOTESオプションを利用すると&#8217;で囲まれた文字列の中で&#8221;と書く事で &#8216;を表現する事が出来るようになります。M-! perl -nle &#8216;スクリプト&#8217;の形式で実行していると、 必然的にスクリプトが&#8217;で囲まれる形になるのでスクリプト中で&#8217;を使う事が出来ません。 しかしSQLへの置換時等、&#8217;を使う場面は多いので重宝します。この際に設定を行うファイルは .zshrcではなく.zshenvである事に注意して下さい。 以上でemacsから気持ちよく正規表現による置換をする方法をまとめました。 もっといい方法があればぜひとも教えて下さい。 参考 先読み、後読み http://www.rfs.jp/sb/perl/02/09.html#%E2%96%A0%E6%8B%A1%E5%BC%B5%E6%A7%8B%E6%96%87 正規表現パズル http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/ 各環境で使える正規表現 [...]]]></description>
			<content:encoded><![CDATA[<p>emacsで正規表現による置換を結構快適に使えるようになったので記録しておきます。</p>
<p><span id="more-353"></span></p>
<p>emacs標準コマンドのM-x replace-regexpは拡張正規表現と呼ばれる構文に対応していないので、スクリプト言語等で使用できる正規表現よりも機能が低く使いにくいのが問題でした。</p>
<p>結論を先に書きますと、以下手順でemacsから快適に正規表現による置換を行えるようになりました。</p>
<ol>
<li> .zshrcに[[ $EMACS = t ]と書いてemacsから使用するシェルをzshに設定し</li>
<li> .zshenvにsetopt RC_QUOTESと書いて&#8217;のネストを許可し、</li>
<li> M-!やM-|から実行したコマンドの履歴もシェルと共有して</li>
<li> emacs上でC-u M-|からperl -nle &#8216;パターン;print&#8217;で置換</li>
</ol>
<p>さて、始まりは前の職場の人のperlの正規表現は凄いという発言です。<br />
その時はあまり興味が無かったのですが、HTML解析を最近頻繁にするようになると<br />
綺麗にツリー構造が作れない場合が多く、仕方なしに正規表現を使わないといけなくなったのでどうせならという事で調べる事にしました。</p>
<p>少し調べてその人の発言内容は、先読み、後読みの事だと知りました。<br />
そしてもう少し調べていくと、最近では先読み、後読みはperlでなくてもphp,python,ruby等でも使えるのですが、emacsのM-x replace-regexpでは使えないという事が解りました。</p>
<p>能力に違いのある複数の正規表現の使い方を覚えておく事に強い抵抗感があったので、emacsのM-x replace-regexpは使いたくありませんでした。かといってperlスクリプトを毎回書くのは面倒すぎて正規表現を使わなくなってしまいそうです。</p>
<p>しばらく悶々としていたのですが、perlにはnオプションというのが存在していて、l,eと組み合わせてperl -nle &#8216;スクリプト&#8217;と書くと以下と同等の処理を実行できる事を知りました。</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&lt;&gt;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">chomp</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    スクリプト
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>これはかなり便利でemacs上からC-u M-|からのコマンド実行と組み合わせれば、<br />
perlでの置換をreplace-regexpと同じ間隔で使用する事が出来ます。</p>
<p>しばらく気分よくこの状態で使っていたのですが、問題がまだありました。<br />
それはM-!, M-|で実行したコマンドの履歴がemacsの再起動の度に消えてしまう事です。<br />
慣れて正規表現を書くのは退屈な作業になってきてましたので、何度も同じ正規表現等書きたくありません。なんとか履歴を残したいということを思い、色々調べてみましたが、上手く見つからず行き詰まっていたのですが、はてな人力検索に<a href="http://q.hatena.ne.jp/1240850127">質問してみた</a>ところ、ドンピシャの回答を頂きまして、晴れてシェルのヒストリと共有する事が出来るようになりました。(内容はリンク先を参照ください)</p>
<p>またzshのRC_QUOTESオプションを利用すると&#8217;で囲まれた文字列の中で&#8221;と書く事で<br />
&#8216;を表現する事が出来るようになります。M-! perl -nle &#8216;スクリプト&#8217;の形式で実行していると、<br />
必然的にスクリプトが&#8217;で囲まれる形になるのでスクリプト中で&#8217;を使う事が出来ません。<br />
しかしSQLへの置換時等、&#8217;を使う場面は多いので重宝します。この際に設定を行うファイルは<br />
.zshrcではなく.zshenvである事に注意して下さい。</p>
<p>以上でemacsから気持ちよく正規表現による置換をする方法をまとめました。<br />
もっといい方法があればぜひとも教えて下さい。</p>
<p>参考</p>
<ul>
<li>
先読み、後読み</p>
<p>http://www.rfs.jp/sb/perl/02/09.html#%E2%96%A0%E6%8B%A1%E5%BC%B5%E6%A7%8B%E6%96%87</p>
</li>
<li>
正規表現パズル</p>
<p>http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/</p>
</li>
<li>
各環境で使える正規表現</p>
<p>http://www.kt.rim.or.jp/~kbk/regex/regex.html</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://taichino.com/engineer-life/emacs/353/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

