mcomplete.el の設定

どもです。
ポットに植えてある食べ蒔きミニトマトの根が,ポット外へとどんどん侵攻していまして,
ま,これは底面給水っぽくしているからなんだろうけど,いい加減定植先を見つけないと
ミニトマトたんが可哀想かなぁと。びっくりするくらい根が伸びまくり。
食べ蒔きと言えば,確か2chで知ったんだっけな,で,DNAをいじっていて,
実から採種した種は生長はすれど花が咲かないとかあるそうな。
確かに,英検1級の問題で,種ビジネスについての文章でそういう話がありましたね。
けど,日本だしいけるんじゃねってな感じで余裕ぶっこいていました。
さてさてどうなることやら。


あー,ミニトマトで思い出したけど,西友で売っているお気に入りのミディトマトが,
248円に値上がりしていた。山形産。先週は,北海道産が148円で売っていたのにぃ。
その前は,178円だったはず。なので,カゴメのたくさん入ったプラム型ミニトマト
298円を買ってきました。たぶん単価はこちらの方が安いはず。

たまには Emacs ネタ。

c++ で何か書いている時に関数移動する際には,主に,imenu を使用しております,
ワタクシ。えぇ,わかります。global ですね。etags ですね。
同一ファイル内で移動する場合には,imenu だって便利だもんっ!
んでまた,mcomplete.el を使用しています。
mcomplete.el は,これがなければ,あずにゃんが軽音部に入部しないくらいに
やばいものなので,使ったことのない人は是非。
あー,anythingを使っている人には不要かも。ワシャ知らん。


でですね,デフォルトのまま imenu を使用しているわけでして,
関数移動する際には,クラス名::関数名というのが候補に挙がるわけです。
その候補はmcomplete 経由でminibufferから選択するんですが,
「クラス名指定するのが面倒臭い」,
case-sensitive なので,大文字入力するのが面倒臭い」
いや,大変便利なんですよ,このままでも。
でも,上記2点がなんとかならんかなぁと。前者は,部分一致をデフォルトにすれば
解決するけど,グローバルに有効にするのはいや。
そんなわけで,mcomplete.el を眺めていたんですよ。
これ,すごいね。ドキュメントもしっかりしていて大変わかりやすいです。
作者様ありがとう!


導入とかはこの辺とか。
http://homepage1.nifty.com/bmonkey/emacs/elisp/mcomplete.el
http://www.bookshelf.jp/soft/meadow_27.html


ほいで,上記2点の解決策。
使用する補完メソッドは,部分文字列一致と前方一致。ほいで,case-insensitive で。
バッチグーです。

(put 'imenu
     'mcomplete-mode
     '(:mode on
             :method-set (mcomplete-substr-method
                          mcomplete-prefix-method)
             :ignore-case on))

ネタ

上記の方法で,関数ジャンプがらくちんぽん。
コンストラクタは,「::クラス名」と,「::」を最初に入力することでオッケーよ。


しかしさらなる問題,いやさっ! 欲が!
ぶっちゃけミニバッファにクラス名::関数名の候補がどばどば出てきても,
あまり見やすくない。
これ,auto-complete.el でも使用されている,popup.el を使用すれば,
大変見通しが良くなるような気がする。
imenu に関しては,人によって,なんだっけ,imenu-なんとか-index-function
みたいなのが違うから,その辺に気を使う必要があるけど,たぶんできそう。
なので,誰か作って下ちい。