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、流行るといいな。