Ctrl-Enter、Shift-Enter 和 Enter 被解釋為同一個鍵
我正在使用帶有 KDE 的 Fedora 30,並且為了方便起見,我正在嘗試將 (Zsh) 綁定
autosuggest-execute
到Ctrl
+Enter
。我正試圖讓它在gnome-terminal
.但是我發現在這三種情況下
showkey -a
總是返回: 、+和+ 。^M``Enter``Ctrl``Enter``Shift``Enter
我嘗試了這個方法(
Ctrl <Return> : "\033M"
in.XCompose
),但它根本不起作用,因為 XCompose 文件沒有被讀取。所以我決定安裝ibus
它,因為我的 KDE 安裝沒有附帶dnf groupinstall input-methods
.跑步
ìbus-setup
現在給我這個警告:GTK+ supports to output one char only: "\033M": ! Ctrl <Return> : "\033M"
不幸的是,所有輸入組合仍然歸結為
^M
ingnome-terminal
和xterm
。有沒有辦法區分那些有或沒有 ibus 的組合鍵?
無需安裝 ibus 等。所有 X11 應用程序都可以訪問確切的鍵碼及其xkb / xim 翻譯,並且可以忽略後者。
問題出在終端模擬器中,事實上沒有標準的方法來表示終端中的 Ctrl-Enter 之類的組合鍵。此外,每個終端模擬器都有(或沒有)自己配置鍵綁定的方式。
在
xterm
中,就像在任何基於 xt 的應用程序中一樣,您可以使用 X11 資源輕鬆配置它。例如,這會將 Ctrl-Enter 轉換為與F33
功能鍵對應的轉義符(根據infocmp
):xterm -xrm '*VT100*translations: #override Ctrl<Key>Return:string("\033[20;5~")'
然後你可以將它綁定
\e[20;5~
到你想要在 readline’s~/.inputrc
, withbind
inbash
, withbindkey
inzsh
等中的任何動作。X11 資源儲存為
RESOURCE_MANAGER
根視窗的屬性,並且可以使用xrdb
實用程序在那裡載入;通常,xrdb
將從 x11 會話初始化腳本呼叫以載入~/.Xresources
文件的內容。KDE 或 Gnome 應用程序喜歡
konsole
並gnome-terminal
有自己的方式將組合鍵配置為操作;我不知道這是否包括向偽 tty 主機寫入任意字元串的能力。