Org-mode上のカーソルの位置でキーバインドをDWIMに変えてくれる org-multiple-keymap.elを作りました
- 2015.03.15
- Emacs

Org-modeとキーバインド
Org-modeは、僕にとってEmacsを薦める理由の一つと言えるほど、重要なアプリです。単なるメモだけでなく、スケジュールの管理やタスクの管理もOrg-modeを使っています。
ただ、日常的に使っていても慣れることができないのが、Org-modeのキーバインドです。一般的なキーバインドだけでも これだけあります。
さらに、キーバインドを覚えにくくさせているのが、複雑なプレフィックスキーです。これはEmacsの宿命でもあるわけですがキーバインドが増えれば必然的にプレフィックスキーも長く複雑になってしまいます。
こういった問題を回避するために、以前 smartrep.el
というものを作りました。
連続操作を素敵にするsmartrep.el作った – sheephead
smartrep.el
は、プレフィックスキーを押す手間を劇的に軽減してくれる素敵elispだったのですが、そもそもプレフィックスキー自体いらないんじゃないか、という発想のもとで作ったのが、 org-multiple-keymap.el
です。
org-multiple-keymap.elとは
Org-modeは、ヘッダーやタイムスタンプ、タグなど複数の要素から構成されていて、各要素にはそれぞれ関連性の高いコマンドが定義されています。それら要素とコマンドを短いキーバインドで結びつけるのが org-multiple-keymap.el
です。
org-multiple-keymap.el
は、org-modeを構成する要素上で、特定のキーマップをセットするマイナーモードを提供します。 現在のところ、タイムスタンプ、またはプライオリティ上にカーソルがある場合、プレフィックスキーを入力せずにワンキーで任意の関数を実行することができます。
使い方は非常にシンプル。Orgファイルを開いて M-x org-multiple-keymap-minor-mode
でマイナーモードを有効にするだけです。
M-x org-multiple-keymap-minor-mode
を有効にすることで、以下のキーマップが有効になります。
timestamp上のキーマップ
key | command |
N | org-timestamp-down-day |
P | org-timestamp-up-day |
n | org-timestamp-down |
p | org-timestamp-up |
o | org-open-at-point |
priority上のキーマップ
key | command |
n | org-priority-down |
p | org-priority-up |
今後の予定
今のところ、タイムスタンプ、プライオリティにしか対応できてないので、他の要素にも随時対応していきたいと思っています。 個人的にはソースコードブロックに適用できると素敵ではないかと思っています。
他に何か面白いアイデアなどありましたら、ここのコメントかGitHubのissueで教えてください。
-
前の記事
dired-subtreeもシマシマにしたい 2015.03.01
-
次の記事
org-multiple-keymap.el v0.2 をリリースしました 2015.03.22