- emaps 20160910.521(in MELPA)
- utilities for working with keymaps.
概要
emap.el は、キーマップを便利に扱うライブラリです。
キーマップの扱いについては、すでに枯れた分野ですが、これを使うことで、ちょうどかゆいところに手が届く感じです。
M-x emaps-describe-keymap-bindings は、指定されたキーマップを describe-bindings 形式で表示します。
describe-bindingsといえばhelm-descbinds(レビュー)を使っている人もいると思いますが、構造上連携はできません。
M-x emaps-describe-keymap は、 M-x describe-variable とほぼ同じですが、キーマップにおける文字コードを数字ではなくて文字として表示するようにします。
たとえば、「3→^C」という風にです。
これは本設定ではdescribe-variableのアドバイスにしてありますので、このコマンドを覚えなくても使えます。
そのまま<f1> kで使ってください。
Fig1: M-x emaps-describe-keymap emacs-lisp-mode-map
Fig2: M-x describe-variables lisp-mode-shared-map (before)
Fig3: M-x describe-variables lisp-mode-shared-map (after)
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてemapsを使う方は
以下のコマンドを実行します。
M-x package-install emaps
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name emaps
おまけ
emaps-define-key を使えば、複数の define-key をひとまとめに書けます。
bind-key.el(レビュー) の bind-keys と似たような感じですが、kbd記法ではない分劣ります。
(define-key keymap "a" 'fun-a) (define-key keymap "b" 'fun-b) (define-key keymap "c" 'fun-c) ; etc.
↓
(emaps-define-key keymap "a" 'fun-a "b" 'fun-b "c" 'fun-c) ; etc.
設定 160914093321.emaps.el(以下のコードと同一)
(defvar emaps-disable-describe-variables nil)
(defun describe-variable--emaps (orig-fn variable &rest them)
"キーマップを表示するときは数字→文字として表示させる"
(unless emaps-disable-describe-variables
(apply orig-fn variable them)
(when (keymapp (symbol-value variable))
(let ((emaps-disable-describe-variables t))
(emaps-describe-keymap variable)))))
(advice-add 'describe-variable :around 'describe-variable--emaps)
実行方法
$ wget http://rubikitch.com/f/160914093321.emaps.el $ emacs -Q -f package-initialize -l 160914093321.emaps.el
本サイト内の関連パッケージ
- helm-descbinds - A convenient `describe-bindings' with `helm'
- bind-key - A simple way to manage personal keybindings
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。