ESS用のyasnippetを書いた

yasnippetってまず何って話なんですけど、なんかテンプレートを挿入してくれるelispらしい。ifとか書いてtabとかを押すと

if () {
    
}

という風に展開してくれます。分かんねーよっていう人は下のやつ見るといいよ。
http://youtube.com/watch?v=vOj7btx3ATg
最近は、Rでfunctionと書くのがだるくてしかたがないので、早速導入することにしました。導入はこの辺が分かりやすかった。

yasnippetのディレクトリにR用のやつ作ればいいのかなーと思ったんだけど、うまくhockできなかったっぽいので、なんか書いた。ess-modeにhockした。

(add-hook 'ess-mode-hook
          '(lambda ()
	     (yas/minor-mode t)))

で、fとかいうファイルを作って下みたいな感じに書いておく。

#name : function(...){...}
# --
function(${x}){${expression}}

すると、こんな感じで展開してくれる。素晴らしい。

function(x){expression}

で、今のおいらのR用yasnippetのファイルはこんな感じになった。

/Users/yasuhisa/.emacs.d/snippets/text-mode/ess-mode% ls
ap	el	f	for	ie	if	li	ma	pl	re	sa	su

順番に「apply、else、function、for、iflese、if、library、mapply、plot、return、sapply、summay」という感じになってます。Rでよく使う関数たち。apとかやると

apply(data.frame,mergin,f)

という感じに展開されるので、fをもう一回展開してやると

apply(data.frame,mergin,function(x){expression})

という感じになります。ほとんどタイプしてない。なんか、id:wakutekaのエイリアスみたいになっているwww。

codereposにsimple-hatena-modeのものもあったからとりあえずつっこんでおいた。