を押すと、alt + left arrow
Urxvtはを印刷する[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[D
XResources。次の行をファイルに入力します~/.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端末を作成する必要があります。