KDEでFedora30を使用していて、(Zsh)autosuggest-execute
をにバインドしようとしています Ctrl+Enter 便宜上。 gnome-terminal
で動作させようとしています。
ただし、次の3つの場合、showkey -a
は常に^M
を返すことがわかりました。 Enter、 Ctrl+Enter、および Shift+Enter。
これを試しました method (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
とxterm
のgnome-terminal
に要約されます。
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の~/.inputrc
で必要なアクションにバインドし、bind
をbash
に、bindkey
をzsh
など。
X11リソースは、ルートウィンドウのRESOURCE_MANAGER
プロパティとして保存され、xrdb
ユーティリティを使用してそこにロードできます。通常、xrdb
は、x11セッション初期化スクリプトから呼び出され、~/.Xresources
ファイルのコンテンツをロードします。
konsole
やgnome-terminal
などのKDEまたはGnomeアプリケーションには、アクションへのキーコンボを構成する独自の方法があります。疑似ttyマスターに任意の文字列を書き込む機能が含まれているかどうかはわかりません。
konsole
で設定する方法は次のとおりです。
KonsoleのキーバインディングのKdeリファレンス も参照してください。
[設定]-> [現在のプロファイルの編集]-> [キーボード]->(使用するキーボードレイアウトを選択)-> [編集]-> [Return
の検索/フィルター]。
次のエントリを編集します(左の列のみ):
Return-Shift-NewLine
をReturn-Shift-Ctrl-NewLine
に変更しますReturn-Shift+NewLine
をReturn-Shift-Ctrl+NewLine
に変更しますこれにより、Enter
とCtrl
+ Enter
を区別できます。
次のエントリを追加します:
Return+Ctrl
-> \E[20;5~
次に、bindkey '\e[20;5~' autosuggest-execute
またはその他のシンクを~/.zshrc
に追加します。