Keyboard-Shortcuts

Ctrl-Enter、Shift-Enter 和 Enter 被解釋為同一個鍵

  • August 21, 2019

我正在使用帶有 KDE 的 Fedora 30,並且為了方便起見,我正在嘗試將 (Zsh) 綁定autosuggest-executeCtrl+ 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"

不幸的是,所有輸入組合仍然歸結為^Mingnome-terminalxterm

有沒有辦法區分那些有或沒有 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, with bindin bash, with bindkeyinzsh等中的任何動作。

X11 資源儲存為RESOURCE_MANAGER根視窗的屬性,並且可以使用xrdb實用程序在那裡載入;通常,xrdb將從 x11 會話初始化腳本呼叫以載入~/.Xresources文件的內容。

KDE 或 Gnome 應用程序喜歡konsolegnome-terminal有自己的方式將組合鍵配置為操作;我不知道這是否包括向偽 tty 主機寫入任意字元串的能力。

引用自:https://unix.stackexchange.com/questions/536352