xtermを使用すると、キーボードシーケンスCtrl + /はCtrl-_を生成します。 ++をshowkey -a
最初にクリックしてから+をクリックした結果です。私はアメリカのANSIキーボードを使用しています。CtrlShift-Ctrl/
[ ~ ] showkey -a
Press any keys - Ctrl-D will terminate this program
^_ 31 0037 0x1f
^_ 31 0037 0x1f
私が実際に得たいもの^/
(またはそれが何であれ)は、EmacsにC-/に関連するカスタムバインディングがあり、Emacs GUIを実行すると正常に動作しますが、実行するとまったく機能しないことです。emacs -nw
これは、C -_(「アンドゥ」操作を実行する)のみを受け取るためです。
xmodmapを台無しにする必要はありません(実際のキーはマッピング大丈夫です)。私はvt100の翻訳を調べました、例えば、すでにここ待つ):
XTerm*VT100.translations: #override \n\
<Key> Prior: scroll-back(1, halfpage) \n\
<Key> Next: scroll-forw(1, halfpage)
しかし、コマンドを実行する代わりに翻訳を使用して別のキーを取得できますか?行を追加してCtrl <Key> /:
usingを使用して上書きしようとしましたが、うまくいきませinsert()
んでした。私はスラッシュが表示されているものを試しましたが、string("0xffe4") string("0x2f")
Ctrlを入力しようとすると奇妙に失敗しますxev
...
modifyOtherKeys
私もその文書を見ました。ここただし、1に設定しても役に立ちません。2に設定するとほとんどすべてが中断されます。
C-/を傍受してC-_に変えることは何であり、克服できるのでしょうか?
重要:私はrootではなく、そのシステムに対するスーパーユーザー権限もありません。何かありますこの問題関連しているようですが、すべての呼び出しでloadkeys
権限関連のエラーが発生します。
答え1
Stéphane Chazelasのおかげで、次のことを実行して問題を解決できました。これをCtrl <Key> /: string("0x1b") string("/")
vt100.translationsリソースに次のように入れました。
XTerm*VT100.translations: #override \n\
<Key> Prior: scroll-back(1, halfpage) \n\
<Key> Next: scroll-forw(1, halfpage) \n\
Ctrl <Key> /: string("0x1b") string("/")
これはCtrl+/転送を「ESC-/」にします(エスケープを使用し、エスケープは0x1bまたは27ですが本当に恋しいです)。その後、現在のC /バインディングと同様に、これを処理するためにEmacsに別のバインディングを追加できます。このようにして、キーボードで+を押してEmacsがM-/(Emacsシンボル)1をCtrl受け取り、GUIと端末で同じように動作させることができます。/
1 M-/のEmacsはすでにデフォルトで「dabbrev-expand」にバインドされています。私はそれを使用したことがないので、それをオーバーライドすることを躊躇しません。