readline ライブラリの「Meta」キーを変更する

readline ライブラリの「Meta」キーを変更する

metaキーの再バインドに興味があります読み込まれた行ライブラリ (たとえば、bash のコマンド ライン編集) のキーを、Alt キーから他の任意のキー (Caps Lock キーなど) に変更します。

コンテキストとしては、私はすでに XMonad ウィンドウ マネージャーを使用しており、ターミナルのキーバインドよりも優先されるいくつかのカスタム関数に Alt キーをバインドしています。

xmodmap を使用してキーを Escape に再マップしようとしましたが、これだと、キーを押したまま複数の移動キーストロークを連続して押すことができません。

Modreadline で別の修飾子をメタキーとして扱うことは可能ですか?

ありがとう!

答え1

Readline は、端末から受信した文字に特定のビットが設定されているかどうかをチェックすることによってメタ キーコンボを検出します。または、メタの場合、文字が 8 ビット バイトに格納されている値の上位の特定の範囲にあるかどうかをチェックすることによって検出します。chardefs.h関連するユーティリティ マクロについて。

これらのマクロを再定義して別の方法でメタ文字を検出するようにライブラリを変更し、調整された readline でシェルを再リンクすることで、メタの感覚を調整できます。あまり侵襲的ではないアプローチとしては、別のキーをメタ ビットの設定として認識するように端末を構成するか、システム レベルで同じことを実行できる何らかの入力マネージャーを使用することです。

答え2

readline ライブラリは、ターミナルでメタ キーの概念のように動作するために使用される修飾子についてはまったく認識しません。したがって、いいえ、あなたが求めていることは不可能です。

関連情報