- imenu-list 20170728.632(in MELPA)
- Show imenu entries in a seperate buffer
概要
Emacsには元々 imenu という、
多言語対応の関数・変数定義をリストする機能があります。
対応している言語は本当にたくさんあり、
プログラミング言語はもちろんのこと、
HTMLやorg-modeなどの文書にも使えます。
しかし、素の M-x imenu はEmacsの元々の補完が使われるので
使い勝手はイマイチです。
そこで helm や ido を使った M-x helm-imenu や、
imenu-anywhere(レビュー) や idomenu(レビュー) があります。
helmやidoのおかげでカレントバッファ内の関数定義へ
ジャンプしやすくなりました。
imenu-list.el は、imenuの定義を一覧します。
M-x imenu-list はimenuの各エントリを*Ilist*バッファで一覧します。
このバッファでRETを押すと関数定義に移動します。
さらに、 M-x imenu-list-minor-mode を使うとIDEっぽい挙動になります。
このマイナーモードを有効にすると、*Ilist*が1秒ごとに更新され、
カーソル位置に対応するimenuエントリを自動で指し示してくれます。
いってみればimenuによる簡易IDEでしょうか。
ソースコードや文書の全体像を見たいけれどhelmはちょっと…
という方はおすすめです。
3/1に開発されたばかりなので、発展が楽しみです。
Fig1: カーソル行に対応したimenuエントリを自動で指し示すよ!
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてimenu-listを使う方は
以下のコマンドを実行します。
M-x package-install imenu-list
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name imenu-list
設定 150303055659.imenu-list.1.el(以下のコードと同一)
ここではjとkで上下移動できるようにしていますが、
設定しなくてもそのまま使えます。
(with-eval-after-load "imenu-list" (define-key imenu-list-major-mode-map (kbd "j") 'next-line) (define-key imenu-list-major-mode-map (kbd "k") 'previous-line))
実行方法
$ wget http://rubikitch.com/f/150303055659.imenu-list.1.el $ emacs -Q -f package-initialize -l 150303055659.imenu-list.1.el
本サイト内の関連パッケージ
- helm - Helm is an Emacs incremental and narrowing framework
- idomenu - imenu tag selection a la ido
- imenu-anywhere - ido/ivy/helm imenu across same mode/project/etc buffers
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。