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のものもあったからとりあえずつっこんでおいた。