Emacs autoinsert でテンプレートを使う

Pelican ではエントリを reST で書いています。ファイルの冒頭部分に投稿日時やカテゴリ、タグなどのメタデータを記載するフォーマットがあって以下のように書いています。

:date: 2014-03-08 17:00:25
:category: misc
:tags: Emacs, reST, Pelican
:slug: emacs-autoinsert

毎回これを手で入力するのは手間なので過去のファイルからコピペしていたのですが、それもどうかと思い、yasnippet を導入してみようと考えたのでした。

今のところは yasnippet も導入できていないので別のアプローチということでファイル作成時に自動であらかじめ用意したテンプレートを読み込んで記述してくれる autoinsert を使ってみることにしました。

まずは ymotongpoo さんのエントリを見てそのまま真似してみました。そのあとでファイル作成時の日時を Pelican で使用しているフォーマットで挿入したかったのでその部分を書き換えています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16 ...
more ...

yasnippet 導入できず

昨日書いた(yasnippet はかなりすごそう)デフォルトで入っているはずのファイルが見当たらない件は、公式ドキュメントを確認して、

そこに書かれている通り、

$ git clone --recursive https://github.com/capitaomorte/yasnippet

とすると、無事 yasnippet/snippetsyasnippet/yasmate などの中身も含めてダウンロードできました。

※最初は以下のようにしていたのでした。

$ git clone https://github.com/capitaomorte/yasnippet.git

ただ、その後 init.el に設定を書いていざ試そうとすると起動時(init.el 読み込み時)にエラーが出てしまいます。cl-lib というものを読み込めないようでした。

もしかしたら、こちらに解決策が書かれいるような気もするのですが、cl-lib がどこにあるのかも不明でどうもよくわかりませんでした。

more ...

yasnippet はかなりすごそう

昨日に引き続き yasnippet について先人が残してくれているエントリをいくつか読んでいました。上記の記事では様々な機能について詳しく書かれていて大変参考になります。スニペット展開後のカーソル位置の指定や、ミラーリングなどもできるようで使いこなせばかなり便利そうだと思います。

手元で確認しようとしていて一点気になった点がありまして、~/.emacs.d/elisp/yasnippet/snippets このディレクトリに最初から入っているスニペットがあるはずだと思うのですが、私の環境では空のディレクトリとなっていました。

明日また git clone して確認してみようかなと思います。

more ...

Emacs に yasnippet を導入

前々から気にはなりつつも入れていなかった拡張、yasnippet を入れてみます。Mac だと TextExpander などのソフトが有名ですが、4,000 円も出すのはどうなのだろうという気が少ししてしまうのと、snippet を活用したいと思うのはコードを書いているときであり(メールアドレスなどは IME の辞書登録だけでも十分)、それなら Emacs 内で完結できるほうがよさそうだと思うのです。

まぁ、使いもせずに TextExpander のことをあれこれということはできませんし、フェアでもないのですが、それはおいておくとしてやっぱり Emacs にもっと習熟したいなあということは常々思っています。

$ cd .emacs.d/elisp/
$ git clone https://github.com/capitaomorte/yasnippet.git
;;yasnippetの設定
(add-to-list 'load-path "~/.emacs.d/elisp/yasnippet/")
(require 'yasnippet)
(yas/initialize)
(yas ...
more ...

Org-mode をアップデートする

普段エディタは Emacs を使っています。昨日、会社で使っているノート PC と自宅のマシンとで org-mode のがバージョンが異なっていることに気づいたので、先ほど自宅の Mac mini で使っている org-mode をアップデートしました。

下記の Qiita の記事に書かれているとおりですが、公式サイトから zip をダウンロードして解凍し、org-8.2.5h というディレクトリをそのまま Emacs の Path の通っているディレクトリ(.emacs.d/elisp など)にコピーして init.el に設定を追記します。

(add-to-list 'load-path (expand-file-name "~/.emacs.d/org-8.2.5h/lisp"))
(add-to-list 'load-path (expand-file-name "~/.emacs ...
more ...