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で使ってください。

20160914094354.png
Fig1: M-x emaps-describe-keymap emacs-lisp-mode-map

20160914095016.png
Fig2: M-x describe-variables lisp-mode-shared-map (before)

20160914094954.png
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

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。