urxvt は、esc キーをキーシーケンスにマップします。

urxvt は、esc キーをキーシーケンスにマップします。

この質問は派生質問です。muttで「明確なヒント」を再バインドします。

私はvimキーバインディングの多くを使用し、それを使用してescコマンドを中断するのが好きです。これでmuttに移動しましたが、escMuttで「中断」にバインドできません(上記を参照)。代わりに+escにマッピングしたいです。私の希望は、一連の2つのキーストロークを送信するキーを取得することです。これはvimとmuttの一般的な中断キーです。escCtrl-gescesc

Vimで競合が発生しないように、Ctrl-g.vimrcから「タスクなし」にマッピングしました。nmap <C-g> <nop>

可能であれば、このマッピングをesc。このマップがXinputまたはXmodmapでよりグローバルに適用されるようにして、他の(cli以外の)プログラムに対してこのマップが何をしているのかを観察し続ける必要があります。つまり、どんな提案でも大歓迎です:)escCtrl-g

答え1

このリソースを使用できますkeysym。これを行うには、rxvtをこのオプションでコンパイルする必要があります--enable-frills。次の行を次の行に入れます~/.Xresources

URxvt.keysym.Escape: \033\007

xrdb -merge ~/.Xresourcesリソースファイルをリロードするには実行してください。この設定は、実行後に実行されるプログラムにのみ適用されますxrdb -merge

必要に応じて、rxvtに渡されたパラメータに応じて異なる方法で設定できます。名前を選択してくださいurxvt-mutt。たとえば、名前は小文字で始め、urxvt他のアプリケーションで使用されている名前と競合しないように始める必要があります。次の行を追加してください~/.Xresources

urxvt-mutt.keysym.Escape: \033\007

その後、実行するとurxvt -name urxvt-muttこのバインディングが得られますが(setを使用してすべてのバインディングをオーバーライドします)、オプションなしで実行するとURxvt.keysym.Escapeバインディングのみが取得されます。urxvt-nameURxvt

関連情報