私はDell Latitudeを持っており、cygwin-Xでxeditを使用するようになりました(Linuxシステムではssh -Xを介しても可能です)。編集をキャンセルするには CTRL-_ キーが必要です。このキーの組み合わせは、xemacsなどで認識できます(他の目的で)。私が知る限り、XアプリケーションのキーストロークはASCII 31(「単位区切り記号」)として受け取られます。 xeditはどのコードを期待していますが、ASCII 31以外の場合はそれを予想コードにマッピングするのですか?
答え1
X アプリケーションの説明イベント、いいえキーストローク。を実行すると、xev
おそらく次のようなものが表示されます(下線はキーボードのShiftキーです)。
KeyPress event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812782646, (61,35), root:(81,78),
state 0x0, keycode 67 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812783382, (61,35), root:(81,78),
state 0x4, keycode 68 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812784150, (61,35), root:(81,78),
state 0x5, keycode 35 (keysym 0x5f, underscore), same_screen YES,
XLookupString gives 1 bytes: (1f) ""
XmbLookupString gives 1 bytes: (1f) ""
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812784374, (61,35), root:(81,78),
state 0x5, keycode 35 (keysym 0x5f, underscore), same_screen YES,
XLookupString gives 1 bytes: (1f) ""
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812785271, (61,35), root:(81,78),
state 0x5, keycode 68 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0xe00001,
root 0x111, subw 0xe00002, time 1812785335, (61,35), root:(81,78),
state 0x4, keycode 67 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xedit
Xツールキットの使用翻訳するたとえば、次のようにしてこれらのイベントをジョブのリソースに変換します。基本リソースの設定TextTr.cでコンパイルします。
":c<Key>_:" "undo()\n"
したがって、(基本リソースをオーバーライドしない限り)コントロール修飾子と下線だけが必要です(キーボードがリソースを生成する方法に関係なく)。
xedit
同様のASCIIを認識できません。^_
。