ただ、imenuは最初に呼ばれたときにそのバッファを解析して、次回以降も最初のときの結果を使うので、新たに作成した関数は選択できません。例えばfunc1, func2という関数があるバッファでimenuを実行し、次にfunc3を作ってからもう一度imenuを実行してもfunc3は候補になりません。そんなときは関数名を入れるところ(Index item: )で*Rescan*と入れます。すると現在のバッファをもう一度解析してくれるので、もう一回M-x imenuすればfunc3も候補に出てくるようになります。この*Rescan*を毎回打つのが結構面倒だなー、と思っていたのですが、 (setq imenu-auto-rescan t) としておけばよいことがわかりました。これでもっと便利に使えそうです。あと、imenu-after-jump-hookを使えば関数に飛んだときに実行することを登録