xtermに制御スラッシュを認識させるにはどうすればよいですか?

xtermに制御スラッシュを認識させるにはどうすればよいですか?

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」にバインドされています。私はそれを使用したことがないので、それをオーバーライドすることを躊躇しません。

おすすめ記事