anything-dabbrev-expand.elでdabbrevの部分マッチをサポート!
anything-dabbrev-expand.elリリース - http://rubikitch.com/に移転しました
昔からEmacs Lispの長いシンボルにはうんざりしていた。最近使ったシンボルはよくdabbrevで補完するのだが、数文字打ってすぐdabbrevしてしまうと、別なシンボル名に補完されてしまいイライラしていた。
anything-dabbrev-candidates anything-dabbrev-partial-candidates anything-dabbrev-all-candidates
みたいに似ているものが多い。ここで「all」と打ってさくっとdabbrevできたらなぁとずっと思っていた。そこで、ついにanything-dabbrev-expand.elでdabbrevの部分マッチをサポートした。できたてほやほやの機能なんだが、俺も気に入っている!
M-x install-elisp-from-emacswiki anything-dabbrev-expand.el
を実行するか以下からもってけ!
http://www.emacswiki.org/cgi-bin/wiki/download/anything-dabbrev-expand.el
注意
カレントバッファのdabbrev部分マッチの実装にはRubyを使っているのでインストールしておくように。最初Emacs Lispでやろうとしたのだが、数百KBのファイル(rubyのeval.c)でやるとあまりにも遅すぎたので断念。
例のごとくRubyにS式を生成させて(eval (read (current-buffer)))しといた。
追記
7/1 21:00に機能追加で再アップロード。
あのままだと部分マッチの使い勝手がイマイチなので更新した。今回で「通常dabbrev→部分dabbrev→anything」の順になった。
1回 anything-dabbrev-expand を起動すると最初のdabbrevが、2回連続で起動すると最初の部分dabbrevが、3回連続で起動すると anything で選択できる。
たとえば、
quitting keyboard-quit
と書かれているバッファがあって、最後尾に「q」と打ち anything-dabbrev-expand を起動する。
最初にdabbrevで「quitting」が、2回目で部分dabbrevで「keyboard-quit」が、3回目でanythingで選択という形になる。
anythingをC-gでキャンセルすると、最初打ち込んだ「q」が復活する。
部分dabbrevしたければ anything-dabbrev-expand を2回連続で起動しよう!連続起動しやすいように打ちやすいキーに割り当てておくべし。俺は「C-@」にしておいた。
部分dabbrev、流行るといいな。