Go to the first, previous, next, last section, table of contents.

対話式のキーの結び付きの変更

Emacsのキーを再定義するには,キーマップのエントリを変更します.グロー バル・キーマップの変更も可能で,その場合,変更はすべての主モードで有効で す(ただし,同じキーをローカルに定義しているモードは別です).またカレント バッファのローカル・マップの変更もできます.この場合は,同じ主モードを使 用するすべてのバッファに影響を与えます.

M-x global-set-key RET key cmd RET
keyがグローバルにcmdを実行するようにします.
M-x local-set-key RET key cmd RET
keyがローカル(現在の主モードだけ)にcmdを実行するようにします.

たとえば

M-x global-set-key RET C-f next-line RET

C-fで1行下がるように定義し直します.cmdが後に読みとられる ことはkeyの確認にもなっています.

この関数では,再定義を行なう接頭辞キーマップを指定する手段は提供されて いません.keyに接頭辞を含めることができるのでこれは不必要です. keyは1文字ずつ,完全なキーになる(つまり接頭辞キーでなくなる)まで読 みとられます.従ってkeyとしてC-fを入力すると,それで完了しま す.ミニバッファは直ちにcmdを読みにかかります.しかしC-xと入 力すると別の文字が読みとられます.たとえばそれが4だとさらに別の文 字が読まれます.たとえば

M-x global-set-key RET C-x 4 $ spell-other-window RET

と入力すれば,C-x 4 $をコマンドspell-other-window(実際には ありません)を実行するように再定義します.

キーマップを修正する最も一般的な方法はLispコード(`.emacs'ファイル などで)で使用されるdefine-key関数を使うことです. define-keyは3つの引数,キーマップ,修正するキー,新しい定義をとり ます.See section 初期化ファイル,.emacs.

substitute-key-definitionも同様に使えます.これは引数を3つ取り ます.古い定義,新しい定義,キーマップです.キーマップで古い定義に割り当 てられているすべてのキーを新しい定義に割り当て直します.


Go to the first, previous, next, last section, table of contents.