128 lines
7.3 KiB
Markdown
128 lines
7.3 KiB
Markdown
---
|
||
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行ってきた。 – tomisima::memo');" target="_blank">tokyo-emacs#x01行ってきた。 – 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 – Google Code');" target="_blank">yasnippet – 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">"「snippets」ディレクトリへのパス"</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">"~/woman_cache"</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">"\C-xb"</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">"~/woman_cache"</span><span class="synSpecial">))</span>
|
||
</pre>
|
||
|
||
<p>
|
||
を書いていること。「(require ‘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> |