blog/content/post/1970-01-01-00000001.md
2019-03-31 19:00:21 +08:00

128 lines
7.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: anythingとyasnippetを導入
author: kazu634
date: 1969-12-31
url: /1970/01/01/_1/
wordtwit_post_info:
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4099;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
categories:
- Emacs
---
<div class="section">
<p>
 <a href="http://d.hatena.ne.jp/hayamiz/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/hayamiz/', 'id:hayamiz');">id:hayamiz</a>主催のEmacs勉強会に参加してきた。<a href="http://d.hatena.ne.jp/hyoshiok/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/hyoshiok/', 'id:hyoshiok');">id:hyoshiok</a>さんの「ブログに感想をアップするまでが勉強会」ということをいわれていたのだが、勉強会から今まですでに二日が経過している。今まで私は何をしていたのか?
</p>
<p>
 いやー、Macの環境をまっさらにして、Emacsの設定を一からやり直していました。それぐらいに濃い刺激を受けてきました。本当にいい勉強会だった。後、やっぱり自分みたいな「コピペで.emacsを作り上げる」レベルには、実際にこんなことができると実演してくれて、「こんなこともできるのか」という感動が強かった。
</p>
<p>
 他の人もいろいろとまとめてくれている(例えば「<a href="http://d.hatena.ne.jp/tomisima/20080629/1214719173" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/tomisima/20080629/1214719173', 'tokyo-emacs#x01行ってきた。 &#8211; tomisima::memo');" target="_blank">tokyo-emacs#x01行ってきた。 &#8211; tomisima::memo</a>」とか)ので、自分は
</p>
<ul>
<li>
anything.el
</li>
<li>
yasnippet.el
</li>
</ul>
<p>
を導入してて、詰まったところを備忘録として書いておこうと思う。でも、この二つも導入するのは結構簡単だった。
</p>
<h4>
yasnippet
</h4>
<p>
 <a href="http://code.google.com/p/yasnippet/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://code.google.com/p/yasnippet/', 'yasnippet &#8211; Google Code');" target="_blank">yasnippet &#8211; Google Code</a>からyasippetをダウンロードする。今回私はbundleではない方をダウンロードした。それで適当なフォルダで解凍して、.emacsに
</p>
<pre class="syntax-highlight">
<span class="synSpecial">(</span><span class="synStatement">require</span> <span class="synSpecial">'</span><span class="synIdentifier">yasnippet</span><span class="synSpecial">)</span> <span class="synComment">;; not yasnippet-bundle</span>
<span class="synSpecial">(</span>yas/initialize<span class="synSpecial">)</span>
<span class="synSpecial">(</span>yas/load-directory <span class="synConstant">&#34;「snippets」ディレクトリへのパス&#34;</span><span class="synSpecial">)</span>
</pre>
<p>
を追加する。再起動後には、yasnippetが使えるようになっている…はず。自分はまっさらにしないと、なぜかyasnippetが使えなかった。なぜなんだろうとりあえずtabで使えるようになるよ。
</p>
<h4>
anything
</h4>
<p>
 こいつは本当に便利です。簡単にいうと、「Quicksilverみたいなのが、Emacsに入ってきます」。<a href="http://d.hatena.ne.jp/IMAKADO/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/IMAKADO/', 'id:IMAKADO');">id:IMAKADO</a>さんのデモをみたときは本当に感動した。manがEmacsの中から参照できている本当にすごい
</p>
<p>
 anythingを導入する前にぜひやっておくべきことは
</p>
<ul>
<li>
<a href="http://centaur.maths.qmw.ac.uk/Emacs/WoMan/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://centaur.maths.qmw.ac.uk/Emacs/WoMan/', 'WoMan');" target="_blank">WoMan</a>の導入load pathに置いておこう
</li>
<li>
locateコマンドを使うと幸せになれそうだから、locate用のデータベースの作成leopardだと「sudo /usr/libexec/locate.updatedb」
</li>
</ul>
<p>
です。
</p>
<p>
 私の.emacsはこんな感じになりました。
</p>
<pre class="syntax-highlight">
<span class="synComment">;; ================</span>
<span class="synComment">;; === anything ===</span>
<span class="synComment">;; ================</span>
<span class="synComment">;; 初回起動が遅いので cache 作成。</span>
<span class="synSpecial">(</span><span class="synStatement">setq</span> woman-cache-filename <span class="synSpecial">(</span>expand-file-name <span class="synConstant">&#34;~/woman_cache&#34;</span><span class="synSpecial">))</span>
<span class="synSpecial">(</span><span class="synStatement">require</span> <span class="synSpecial">'</span><span class="synIdentifier">anything-config</span><span class="synSpecial">)</span>
<span class="synSpecial">(</span><span class="synStatement">setq</span> anything-sources
<span class="synSpecial">(</span><span class="synStatement">list</span> anything-c-source-buffers
anything-c-source-files-in-current-dir
anything-c-source-file-name-history
anything-c-source-emacs-commands
anything-c-source-man-pages
anything-c-source-info-pages
anything-c-source-calculation-result
anything-c-source-locate<span class="synSpecial">))</span>
<span class="synSpecial">(</span>global-set-key <span class="synConstant">&#34;\C-xb&#34;</span> <span class="synSpecial">'</span><span class="synIdentifier">anything</span><span class="synSpecial">)</span>
</pre>
<p>
ポイントになるのは、いちいち起動時に man ページから索引を作らないように
</p>
<pre class="syntax-highlight">
<span class="synComment">;; 初回起動が遅いので cache 作成。</span>
<span class="synSpecial">(</span><span class="synStatement">setq</span> woman-cache-filename <span class="synSpecial">(</span>expand-file-name <span class="synConstant">&#34;~/woman_cache&#34;</span><span class="synSpecial">))</span>
</pre>
<p>
を書いていること。「(require &#8216;anything-config)の前に書かないといけない」ことに気づくまでが大変だった。。。
</p>
<p>
 参考になったのは、「<a href="http://dev.ariel-networks.com/Members/matsuyama/open-anything-emacs" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://dev.ariel-networks.com/Members/matsuyama/open-anything-emacs', '巷で話題の anything.el を使ってみた');" target="_blank">巷で話題の anything.el を使ってみた</a>」。
</p>
<h4>
最後に
</h4>
<p>
 <a href="http://d.hatena.ne.jp/hayamiz/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/hayamiz/', 'id:hayamiz');">id:hayamiz</a>さん と <a href="http://d.hatena.ne.jp/hyoshiok/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/hyoshiok/', 'id:hyoshiok');">id:hyoshiok</a>さん、勉強会を開いてくれてありがとうございました!発表してくださった皆さんもおつかれさまです。
</p>
</div>