GUIセッションの端末では、Ooは「/」文字を生成します。

GUIセッションの端末では、Ooは「/」文字を生成します。

Ubuntu 20.10のGNOME3 GUIログインセッションで、ターミナルウィンドウで、、を素早く連続して押すと、これらのESCキーOストロークoを入力する代わりに "/"文字が生成されます。これはVimを実行するときに問題になります。挿入モードから外れ、現在のテキストの上に新しいテキスト行をすばやく開始したい場合がよくあります。

次に始まる他のキーシーケンスもESC O同様に動作します。ESC O q「1」… w「7」など。多くの人が期待どおりに動作します。

これらのキーを入力してエフェクトを実行するのにかかる時間は、Vimでは約2秒であるように見えますが、コマンドラインでははるかに短いです。

コンソールからログインしてもCTRL ALT F6この動作は観察されません。

Chrome、テキストエディタ、GVimなどの他のアプリケーションでも発生しません。

Guakeとターミナルの下に表示されます。

また、Windows 10システムのUbuntu WSLインストールでも同じ動作を観察しました。 2つのホームディレクトリの間には、疑わしいほど共通のコンポーネントがないようです。

LXDEやKDEなどの他のデスクトップは動作を確認していません。

MacOS 端末セッションでは、この問題は発生しないことがわかりました。

これがGNOMEの機能ですか?無効または変更する方法はありますか?

ベストアンサー1

問題はVTEのキーマップにあります。2014年にこの変化が起こりました:

コミット 598572b526568591ca91e3e0019412274edd9643
著者: Egmont Koblinger[Eメール保護]
日付:2014年5月18日日曜日13:36:01 +0200

keymap:terminfoの代わりにハードコーディングされたシーケンスを使用する

https://bugzilla.gnome.org/show_bug.cgi?id=728900#c5

ソースコードは次のように言います。

static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Divide[] = {
        {cursor_all, keypad_default, 0, "/", 1},
        {cursor_all, keypad_app, VTE_NUMLOCK_MASK, "/", 1},
        {cursor_all, keypad_app, 0, _VTE_CAP_SS3 "o", -1},
        {cursor_all, keypad_all, 0, X_NULL, 0},
};

どこSS3まさにEscapeOその順序です。一部の端末(およびおそらくいくつかのバージョンのgnome-terminal)ではキーのオーバーライドが可能ですが、Ubuntu 20をすばやく見ると、それらの1つにのみバインディングを割り当てることができます。行動端末識別:

GNOME端末設定

その方法が役に立たない場合は、Ubuntuで実行されている他の端末があります。

おすすめ記事