imenuとは
Emacsには、構造化されたtextの目次を表示しそこへジャンプするimenuという機能がある。Textによって「目次」とすべき内容が異なるので、imenuにはtextに応じたindexingを行うfunctionを渡せるように作られている。
imenuはprogramming languageには勿論、HTMLやMarkdownのようなtextにも応用できる。
markdown-modeにおけるimenu
markdown-modeはindexを作製するfunctionを2種類提供してくれている:- markdown-imenu-create-flat-index
- markdown-imenu-create-nested-index
この2つの違いはfunction nameそのままで、flatの方はtreeのleaf nodeのみを列挙するのに対し、nestedは言わばleaf nodeへのfull pathを列挙する。
Defaultではflatがimenu-create-index-functionにbindされているので、markdown-modeのhookを使ってnestedをbindすればそちらを利用できる。
実際の活用に際して
imenuはそのままでは使いにくいので、helm-imenuを使うと良いだろう。この際、which-function (which-funcはobsolete)で現在位置を表示させるのも便利だ。
Indexの実例
# H1## H2-1
### H3-1
### H3-2
## H2-2
### H3-3
のようなMarkdown textがあるとする。
flat-index
H1H2-1
H3-1
H3-2
H2-2
H3-3
nested-index
H1 / .H1 / H2-1 / .
H1 / H2-1 / H3-1
H1 / H2-1 / H3-2
H1 / H2-2 / .
H1 / H2-2 / H3-3
参考Link
- [imenu.el の使い方と応用 — ありえるえりあ](http://dev.ariel-networks.com/Members/matsuyama/imenu/)
0 件のコメント:
コメントを投稿