Emacsが私のキーコードを下に翻訳するのを止めることはできますか?

Emacsが私のキーコードを下に翻訳するのを止めることはできますか?

emacs私が押すキーの組み合わせ(コード)を2回推測する基本的な動作があります。たとえば、指定されていないキーの組み合わせを押すと、自動的に小さなコードにダウンコンバートされます。<C-M-up> (translated from <C-M-S-up>)

どうやってドラッグできますか?

実際、その価値は見えませんが、一部のユーザーにとっては確かにそうです。また、この(あいまいな)機能がどのような利点をもたらすかを知りたいです。

答え1

短い答え:変換されていないバインディングバージョンへの変換を無効にする簡単な方法はありません。

バインドされていないキーシーケンスを見つけるにはM-x describe-unbound-keys。バインド解除されていることが確認されます(C-S-up複雑さを求めるメッセージが表示されたら入力されます)。15

コマンドは、使用可能なライブラリーにありますdescribe-unbound-keysunboundここwikiから。

より長い答え:

関連文書は以下にあります。キーシーケンス入力それは次のように言います:

入力文字が大文字(またはShift修飾子を持つ)であり、キーバインディングはありませんが小文字の場合、read-key-sequenceはその文字を小文字に変換します。照会キーはこのように大文字と小文字の変換を行いません。

明らかに、この動作は気に入らないが、この特定の翻訳を変更するには、keyboard.cEmacsのソースコードを変更する必要があります。コメントを探します。

  /* If KEY is not defined in any of the keymaps,
     and cannot be part of a function key or translation,
     and is a shifted function key,
     use the corresponding unshifted function key instead.  */

ifその後のステートメントを無効にします。

通常、キーボード翻訳はさまざまな理由で存在します(この回答の上部にあるドキュメントリンクに記載されているように)、記載されているさまざまなキーマップをカスタマイズしてカスタマイズできます。

答え2

すべてのキーの動作を無効にする設定はありません。特定のShiftキーの組み合わせの場合、キーをignoreそのキーにバインドすると、EmacsがキーをShiftキーではなくバージョンに自動的にマッピングするのを防ぐことができます。

自動マッピングが存在する理由について言えば、このシステムの1つの利点は、すべての(通常の)小文字のバインディングをコピーすることなく、大文字専用の端末でEmacsを使用できることです。 GNU Emacsは、これらの端末が依然として多く使用されているときから使用されました。

関連情報