-
Dired、Info、Compilation、Occurなどの多くのメジャーモードではハイパーリンクを含む読み取り専用テキストを処理するようデザインされている。そのようなメジャーモードはリンクをフォローするようにmouse-2とRETを再定義すること。そのリンクが
mouse-1-click-follows-link
にしたがうようにfollow-link
条件もセットアップすること。クリック可能なテキストの定義を参照のこと。そのようなクリック可能リンクを実装する簡便な手法についてはボタンを参照のこと。
-
Lispプログラム内のキーとしてC-c
letterを定義してはならない。C-cとアルファベット(ASCIIおよび非ASCIIの大文字と小文字の両方)からなるシーケンスはユーザー用に予約済みである。これらはユーザー用として唯一予約されたシーケンスなので阻害してはならない。
すべてのメジャーモードがこの慣習を尊重するよう変更するには多大な作業を要する。この慣習を捨て去ればそのような作業は不要になりユーザーは不便になるだろう。この慣習を遵守してほしい。
- 修飾キーなしのF5からF9までのファンクションキーもユーザー定義用に予約済み。
- 後にコントロールキーか数字が続くC-cシーケンスはメジャーモード用に予約済みである。
- 後に{、}、<、>、
:、;が続くC-cシーケンスもメジャーモード用に予約済み。
- 後に他のASCII区切り文字やシンボル文字が続くC-cシーケンスはマイナーモードに割り当てられている。メジャーモード内でのそれらの使用は絶対禁止ではないが、もしそれを行えばそのメジャーモードがマイナーモードにより時々シャドーされるかもしれない。
- 後にプレフィクス文字(C-cを含む)が続くC-hをバインドしてはならない。C-hをバインドしなければ、そのプレフィクス文字をもつサブコマンドをリストするためのヘルプ文字として自動的に利用可能になる。
- 別のESCが後に続く場合を除きESCで終わるキーシーケンスをバインドしてはならない(つまりESC
ESCで終わるキーシーケンスのバインドはOK)。
このルールの理由は任意のコンテキストにおける非プレフィクスであるようなESCのバインディングは、そのコンテキストにおいてファンクションキーとなるようなエスケープシーケンスの認識を阻害するからである。
- 同様にC-gは一般的にはキーシーケンスのキャンセルに使用されるので、C-gで終わるキーシーケンスをバインドしてはならない。
- 一時的なモードやユーザーが出入り可能な状態のような動作は、すべてエスケープ手段としてESC
ESCかESC ESC ESCを定義すること。
通常のEmacsコマンドを受け入れる状態、より一般的には後にファンクションキーか矢印キーが続くESC内のような状態は潜在的な意味をもつのでESC
ESCを定義してはならない。なぜならそれはESCの後のエスケープシーケンスの認識を阻害するからである。これらの状態においては、エスケープ手段としてESC
ESC ESCを定義すること。それ以外ならかわりにESC ESCを定義すること。