こんにちは、xfce4-terminalのキーマッピングを少し変更したいと思います。おそらくXterm.VT100.translationsを.Xresourcesに追加するのと同じです。
特に、最後の単語を削除するにはctrl-backspaceを使用し、次の単語を削除するにはctrl-deleteを使用したいと思います。
ボーナス:バックスペース、削除、左矢印、右矢印にAltをCtrl(繰り返し機能)のように使用したいと思います。
xfce4-terminalでこれらの操作の全部または一部をどのように実行できますか?
編集:これまでの進捗状況:私はreadlineライブラリとbash組み込み関数 "bind"を使用してキーシーケンスをreadline関数にマップするbashを使用しています。私に必要な機能は「shell-kill-word」と「shell-backward-kill-word」です。原則として、次のことができるはずです。
"\C-Rubout":shell-backward-kill-word
"\C-Delete":shell-kill-word
"\M-Rubout":shell-backward-kill-word
"\M-Delete":shell-kill-word
ただし、xfce4端末エミュレータまたはプロセスの一部のアップストリームコンポーネント(ウィンドウマネージャ、xfwm4、Xorgプログラム自体?)は協力しません。通常、メタキーはエスケープ文字に変換されます。たとえば、次のようになります。
"\ey":shell-kill-word <-- Meta + y kills next word
しかし、バックスペースと削除キーの使用には運がありませんでした。キーボードのバックスペース、削除、および制御キーの組み合わせによって生成された2つの端末エミュレータxfce4-terminalとxtermのキーコードをテストしました。 emacsのCh Clコマンドによると、
xterm:
backspace: DEL
delete: \e[3~
\C-backspace: \C-h
\C-delete: \e[3;5~
\M-backspace: y-umlaut (y with two dots over it)
\M-delete: nothing
xfce4-terminal:
backspace: DEL
delete: \e[3~
\C-backspace: DEL
\C-delete: \e[3;5~
\M-backspace: \e DEL
\M-delete: nothing
特にxfce4-terminalでは、\ C-backspaceをshell-backword-kill-wordにバインドすることは不可能です。これは、通常のバックスペースキーとまったく同じキーコードを送信するためです。そして、キーコードをまったく送信しないので、\ M-deleteをshell-kill-wordにバインドすることは不可能です。
Linuxに切り替えてすべてのハードウェア/ソフトウェア互換性の問題を処理する必要がある1つの(大きな)理由は、Linuxがカスタマイズ可能であるためです。たとえば、私はウィンドウをクリックするのではなく、ウィンドウの上にマウスを置くと、ウィンドウに焦点を合わせるのが好きです。私の考えでは、最新のLinuxディストリビューションでこれらの問題を解決することが最優先事項です。残念ながら、この問題を解決するための次の手順を実行するために、Xおよびxfceのすべてのバックグラウンド調査を実行する時間はありません。 Xorgエコシステムについてもっと知っている人は私に正しい方向を教えてもらえますか?たぶんより良い仕事をする代替端末エミュレータがありますか?
最後の情報:Xウィンドウでemacsを実行すると、キーコードの1つだけを除いてすべて選択されます。
backspace: <backspace>
delete: <delete>
\C-backspace: <C-backspace>
\C-delete: <C-delete>
\M-backspace: <M-backspace>
\M-delete: nothing
答え1
いいですね。これは+、+、+、+.zshrc
の私の内容です。ctrl←ctrl→alt←alt→
## use Ctrl <- and Ctrl -> for jumping to word-beginnings on the CL
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
## the same for alt-left-arrow and alt-right-arrow
bindkey '^[[1;3C' forward-word
bindkey '^[[1;3D' backward-word
crtl私のシステムでは+delと+のために動作しますが、まだ+と+のキーがalt見つかりませんでした。delctrlbackspacealtbackspace
bindkey '^[[3;5~' kill-word
bindkey '^[[3;3~' kill-word
CtrlV+を押して希望のキーの組み合わせを入力すると、各キーの組み合わせを表す奇数文字を入力できます。たとえば、Ctrl+を押しVてからCtrl+←を押すと^[[1;5D
答え2
まあ、キーバインディングが悪夢だったので、xfce4-terminalをあきらめてxtermに戻らなければなりませんでした。私は実際にタブではなく複数のウィンドウを使用することを好むことがわかりました。 xterm<-->bashのキーバインディングのために私がしたことは次のとおりです。
# ctrl-backspace
"\C-h":shell-backward-kill-word
# meta-backspace
"ÿ":shell-backward-kill-word
# ctrl-delete
"\e[3;5~":shell-kill-word
# meta-delete
# not detected
# ctrl-right-arrow
"\e[1;5C":shell-forward-word
# ctrl-left-arrow
"\e[1;5D":shell-backward-word
# meta-right-arrow
"\e[1;3C":forward-word
# meta-left-arrow
"\e[1;3D":shell-backward-word
私が逃した唯一のものはメタ除去です。何ができますか?