10

キー「C-(」を VT100/xterm 端末 (Mac OS X 端末) 経由で Emacs に送信することは何らかの方法で可能ですか?同等の機能を実現するために送信できるエスケープ シーケンスはありますか?

基本的な問題は、制御を文字 "(" (およびシフトを使用して生成されるその他の文字) と組み合わせるという概念が存在しないことだと思います。

注: Cocoa Emacs の使用はオプションではありません。また、「C-(」が必要な理由は、paredit.el が他のキーの組み合わせの中でそれを使用するためであり、再マップしない方が望ましいでしょう (「C-(」に配置するのが理にかなっているからです)。

4

1 に答える 1

16

^(に対応する制御文字がないため、VT100 端末ではそれができませんでした(。ただし、xterm にはいわゆる「modifyOtherKeys」モードがあり、そのような組み合わせに対して一意のキーコードを送信できます。

有効にするには、modifyOtherKeysリソースを次のように設定し~/.Xdefaultsます。

XTerm*vt100.modifyOtherKeys: 1

これで、Ctrl+( は次のキーコードを送信します。

^[[27;6;40~

ただし、それはかなり長いので、そのようなキーコードの別の形式が導入されました。これは、formatOtherKeysリソースを設定することで有効にすることができます:

XTerm*vt100.formatOtherKeys: 1

それで、 Ctrl+( 送信します:

^[[40;6u

これらのキーコードの両方で、40 は の 10 進 ASCII コードで(あり、6 は Ctrl を表します。

詳細についてはman xtermhttp://invisible-island.net/xterm/ctlseqs/ctlseqs.htmlを参照してください。Terminal.app がそれをサポートしているかどうかはわかりません。

于 2010-12-02T21:38:37.717 に答える