私はこれに対して型にはまらないアプローチをとっており、それを強くお勧めします。Cl ('ell') キーをプレフィックス キーとして再定義し、それをお気に入りのコマンドのプレフィックスとして使用しています。このキーは非常に簡単に入力でき、あまり使用されない関数 ('recenter) にバインドされています。
まあ、私は 'recenter をあまり使用しませんが、使用したとしても、入力がほぼ同じくらい簡単な Cl Cl に割り当てることができ、Ctrl-L-map によって開かれた可能性に対してわずかな代償を払うことができます。 . (実際、私は 'recentering' よりも 'redraw-display' の方が好きなので、それを優先しました。)
それを機能させる魔法の呪文をどこで手に入れたか覚えていません。
(global-unset-key "\C-l")
(defvar ctl-l-map (make-keymap)
"Keymap for local bindings and functions, prefixed by (^L)")
(define-key global-map "\C-l" 'Control-L-prefix)
(fset 'Control-L-prefix ctl-l-map)
その後、心ゆくまでキーを定義できます。Cl は、キーにバインドされていない関数や、覚えていないキーや入力しにくいキーにバインドされている関数だけでなく、独自のコマンドのバインドを配置するのに最適な場所です。標準関数へのバインディングの例を次に示します。
(define-key ctl-l-map "\C-l" 'redraw-display)
(define-key ctl-l-map "l" 'recenter)
(define-key ctl-l-map "g" 'goto-line)
(define-key ctl-l-map "r" 'replace-string)
(define-key ctl-l-map "R" 'replace-regexp)
(define-key ctl-l-map "q" 'query-replace)
(define-key ctl-l-map "Q" 'query-replace-regexp)
(define-key ctl-l-map "o" 'overwrite-mode)
(define-key ctl-l-map "\C-w" 'kill-rectangle)
(define-key ctl-l-map "\C-y" 'yank-rectangle)
(define-key ctl-l-map "h" 'command-history)
(define-key ctl-l-map "w" 'write-region)
(define-key ctl-l-map "r" 'electric-replace-string)
(define-key ctl-l-map "\er" 'replace-string)
(define-key ctl-l-map "T" 'delete-trailing-whitespace)
(define-key ctl-l-map "C" 'describe-char)
(define-key ctl-l-map "W" 'ediff-regions-wordwise)
(define-key ctl-l-map "L" 'ediff-regions-linewise)
(define-key ctl-l-map "\C-f" 'facemenu-remove-all)
(define-key ctl-l-map "\C-c" 'calendar)
(define-key ctl-l-map "m" 'not-modified) ;; already at M-~
(define-key ctl-l-map "\C-q" 'fill-region)
(define-key ctl-l-map "u" 'set-buffer-file-coding-system)
(define-key ctl-l-map [?\C-2] 'transient-mark-mode)
(define-key ctl-l-map "\C-@" 'transient-mark-mode)
(define-key ctl-l-map "\C-n" 'linum-mode)
(define-key ctl-l-map "\C-s" 'isearch-forward-regexp)
(define-key ctl-l-map "\C-r" 'isearch-backward-regexp)a
(define-key ctl-l-map "U" 'browse-url)
(define-key ctl-l-map "F" 'browse-url-of-file)
(define-key ctl-l-map "\C-u" 'undo-only)