更改 xfce4-terminal 的鍵映射
您好我想稍微更改 xfce4-terminal 中的鍵映射,可能類似於將 Xterm.VT100.translations 添加到 .Xresources。
特別是,我想讓 ctrl-backspace 刪除最後一個單詞,並 ctrl-delete 刪除下一個單詞。
獎勵:我想讓 alt 像 ctrl(重複功能)一樣用於退格、刪除、左箭頭、右箭頭。
如何在 xfce4-terminal 中完成所有或任何這些事情?
編輯:到目前為止的進展:我正在使用 bash,而 bash 使用 readline 庫和 bash 內置函式“bind”將鍵序列映射到 readline 函式。我需要的功能是“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
但是使用退格鍵和刪除鍵我不走運。我測試了來自兩個終端仿真器 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 並處理所有硬體/軟體兼容性問題的一個(重要)原因是 Linux 是如此可定制的。例如,當我將滑鼠懸停在視窗上時,我喜歡讓視窗獲得焦點,而不是點擊它們。在我看來,在現代 Linux 發行版中解決此類問題似乎是一項高優先級的任務。不幸的是,我沒有時間對 X 進行所有背景研究,而我需要做 xfce 來解決這個問題的下一步。對 Xorg 生態系統有更多了解的人可以為我指明正確的方向嗎?也許有一個替代終端仿真器可以做得更好?
最後一條資訊:在 X 視窗中執行 emacs,它會得到除一個鍵碼之外的所有鍵碼:
backspace: <backspace> delete: <delete> \C-backspace: <C-backspace> \C-delete: <C-delete> \M-backspace: <M-backspace> \M-delete: nothing
好的,這就是我的
.zshrc
forctrl
+←
,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
+del
但我還沒有找到ctrl
+backspace
和alt
+的鍵backspace
。bindkey '^[[3;5~' kill-word bindkey '^[[3;3~' kill-word
您可以通過按
Ctrl
+V
後跟所需的組合鍵來輸入代表每個組合鍵的奇數字元。例如按Ctrl
+V
後跟Ctrl
+←
產生^[[1;5D