urxvtでキーコード印刷を無効にする

urxvtでキーコード印刷を無効にする

を押すと、alt + left arrowUrxvtはを印刷する[Dか、またはをalt + up arrow印刷します[A

urxvtが何もしないようにこの動作を無効にする方法はありますか?

答え1

何が起こっているのかurxvtがAltキーコード+をLeftエスケープシーケンス\e\e[D(エスケープ文字を表すために使用する\e)に変換しているということです。これは合理的な選択です\eO1D

\e\e[D+の意味を理解するには、端末で実行されるアプリケーションを設定する必要があります。 readlineライブラリを使用するbashや他のアプリケーションでは、コードに次の行を追加します(この例では、キーの組み合わせを文字通り後ろに移動させました)。AltLeft~/.inputrc

"\e\e[D": backward-word

または、rxvtを送信するように設定します(必要に応じて+\eO1Dと理解するようにアプリケーションを教えます)。これは、2つの制御文字を連続して使用しないよりも便利です。次のようにrxvtのキーバインディングを設定できます。AltLeft\e\e[DXResources。次の行をファイルに入力します~/.Xresources(多くの環境では、ログイン時にロードされます。ファイルを手動でロードするには実行しますxrdb -merge ~/.Xresources)。

URxvt.keysym.Meta-Left: \033O1D

答え2

これは~/.Xresourcesファイルで構成できます。 UrxvtにはUrxvt*keysymキーコードを再マップするオプションがあります(参照:Urxvt マニュアルページ)たとえば、

Urxvt*keysym.A-Left: command:\000
Urxvt*keysym.A-Right: command:\000

altこれにより、+Leftと+が空にalt再マップされます。Right

xrdb ~/.Xresourcesこれを行うには、実行したいことを覚えていて、新しいUrxvt端末を作成する必要があります。

関連情報