Function: copy-keymap keymap
この関数は、 keymap のコピーを返します。 (バージョン 18.50 では) copy- keymap は、(keymap の要素であるキーマップもコピーするよう) リカーシブに行 ないます。
(setq map (copy-keymap (current-local-map))) => (keymap (27 keymap) (83 . center-paragraph) (115 . center-line)) (9 . tab-to-tab-stop))
(eq map (current-local-map)) => nil
Function: accessible-keymaps keymap
この関数は、 keymap からアクセス可能な(定義する!!) 全てのキーマップからな るリストを返します。 (keys . map) というフォームの要素からなる association リストを返します。( keymap から始めた時に) keys の文字(ストリング) をタイ プすると、 map に行くことになります。
(要素は) keys の短い順に並べられます。最初の要素は、常に ("" . keymap) に なります。以下に示した最初の例で返される alist は、("^[" として表示される) ESC をタイプするとスパースキーマップ (keymap (83 . center-paragraph) (115 . foo)) が得られることを示しています。
2 番目の例では、文字 C-x 4 をタイプすると (ctl-x-4-map である) [nil ...] で始まるフルキーマップを得ることになります。
(accessible-keymaps (current-local-map)) => ("" keymap
(27 keymap) (83 . center-paragraph) (115 . center-line)) (9 . tab-to-tab-stop))
("^[" keymap (83 . center-paragraph) (115 . foo)))
(accessible-keymaps (current-global-map)) => (("" . [set-mark-command beginning-of-line ... delete-backward-char]) ("^C" keymap (13 . x-flush-mouse-queue)) ("^H" keymap (118 . describe-variable) ... (8 . help-for-help)) ("^X" . [x-flush-mouse-queue ... backward-kill-sentence]) ("^[" . [mark-sexp backward-sexp ... backward-kill-word]) ("^X4" . [nil ... find-file-other-window nil ... nil nil])
Function: suppress-keymaps keymap &optional nodigits
この関数は、 (通常は self-inserting コマンドである)ほとんどのコマンドを上 書きし、それらを undefined (訳注:未定義) にするよう、フル keymap の内容を 変更します。これはまた nodigits が nil である場合、digit が数値の arg を設 定するようにします。
nil を返します。
この関数は、 keymap を変更してしまうため、新しいキーマップかキーマップのコ ピーを用い、修正したマップをローカルに用いるようにしたほうがよいでしょう。 (例えば) global-map をサプレスしてしまうと、(ほとんど) Emacs を使うことは できなくなってしまいます。
この関数は、yank や quote-insert といったコマンドはサプレスしないため、 バッファの修正を不可能にはしません。しかし、それを難かしくはします。バッ ファは、この関数を用いなくともバッファのフラグをセットすることで "リードオ ンリー(訳注:read-only)" にされます。
以下の例において、self-insert-command の最初の行は 0 から 9 までの数字を示
します。 2 番目の行は、その他(全ての) printing 文字を示します。サプレスさ れた後のマップは、数字に対する関数が(全て) digit-argument で置き換えられ、 その他の printing 文字に対する関数が(全て) undefined で置き換えられている ことを示します。
(もっと良い例が必要!!)
(setq map (copy-keymap (current-global-map))) => [set-mark-command ... self-insert-command ... self-insert-command self-insert-command ... self-insert-command ... delete-backward-char] (suppress-keymap map) => nil map => [set-mark-command ... digit-argument ... digit-argument undefined ... undefined ... delete-backward-char]
Command: descrobe-bindings
(xref where-is-internal!!)(短かく!!) この関数は、定義されているキー(の全 て)とその定義とのリストを作ります。このリストを `*Help*' という名前のバッ ファに入れ、ポップアップウィンドウに表示します。
メタキーを用いるコマンドは、残りのキーシーケンスを ESC の後に続けることで 示します。 control キーを用いるコマンドは、残りのキーシーケンスを C- の後 に続けることで示します。
同じ定義を共有する複数の(訳注:連続した)キーは、その最初の文字の後に .. を続け(その後に)その最後の文字を続けることで示します。この場合、その ASCII コードを知ることが助けになります。以下に示した例(訳注:??) は、SPC .. ~ は (全て) self-insert-command に属すことを示しています。 SPC は ASCII 32 で ~ は ASCII 126 で、通常の printing 文字 (i.e., 英文字、数字、区切り文字、等)
は(全て)、この 2つのものの間に入ります。