GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Commands.html ・ emacs-doc.conao3.com

23.16 キーバインド用のコマンド

本節では、キーバインドを変更するための便利なインタラクティブインターフェースをいくつか紹介します。これらは keymap-set を呼び出すことで動作します(キーバインドの変更 を参照)。インタラクティブに使用する場合、これらのコマンドは引数 key の入力を求め、ユーザーが有効なキーシーケンスを入力することを期待します。また、キーシーケンスの binding の入力を求め、コマンド名(すなわち、commandp を満たすシンボル。インタラクティブ呼び出し を参照)の入力を期待します。Lisp から呼び出される場合、これらのコマンドは key が key-valid-p を満たす文字列(キーシーケンス を参照)であること、および binding がキーマップにおいて意味を持つ任意の Lisp オブジェクト(キールックアップ を参照)であることを期待します。

簡単なカスタマイズのために、initファイル(Initファイルを参照)でkeymap-global-setがよく使われます。例えば、

(keymap-global-set "C-x C-\\" 'next-line)

C-x C-\ を再定義して1行下に移動させる。

(keymap-global-set "M-<mouse-1>" 'mouse-set-point)

Metaキーを押しながら押す1番目(一番左)のマウスボタンを、クリックした地点を設定するための操作として再定義します。

バインドするキーをLispで指定する際、ASCII以外のテキスト文字を使用する場合はご注意ください。Lispファイルでは通常そうであるように、これらがマルチバイトテキストとして読み込まれる場合(非ASCII文字の読み込みを参照)、キーもマルチバイトで入力する必要があります。例えば、次のように記述した場合:

(keymap-global-set "ö" 'my-function) ; bind o-umlaut

また、言語環境がマルチバイトのLatin-1である場合、これらのコマンドは実際には、Latin-1端末から送信されるバイトコード 246 (M-v) ではなく、コード 246 のマルチバイト文字をバインドします。このバインドを利用するには、適切な入力メソッドを用いてキーボードをデコードする方法をEmacsに学習させる必要があります(The GNU Emacs Manual の 入力メソッド を参照してください)。

コマンド: keymap-global-set key binding

この関数は、現在のグローバルマップにおける key のバインドを binding に設定します。

(keymap-global-set key binding)
≡
(keymap-set (current-global-map) key binding)
コマンド: keymap-global-unset key

この関数は、現在のグローバルマップから key のバインディングを削除します。

この関数の用途の一つに、key をプレフィックスとするより長いキーを定義するための準備があります。key にプレフィックス以外のバインディングがある場合、このような定義は許可されません。例えば:

(keymap-global-unset "C-l")
    ⇒ nil
(keymap-global-set "C-l C-l" 'redraw-display)
    ⇒ nil
コマンド: keymap-local-set key binding

この関数は、現在のローカルキーマップにおける key のバインドを binding に設定します。

(keymap-local-set key binding)
≡
(keymap-set (current-local-map) key binding)
コマンド: keymap-local-unset key

この関数は、現在のローカルマップから key のバインディングを削除します。