2010-12-02 14 views
8

"C- (") anahtarını bir VT100/xterm terminali üzerinden göndermek mümkün mü (Mac OS X Eşdeğerini elde etmek için gönderilebilecek bir kaçış dizisi var mı?Gönder "C- (", VT100/xterm terminalindeki (Mac OS X Terminali) Emacs'e gönderilsin mi?

Temel sorun şu ki kontrolün "(" (ve vardiya kullanılarak üretilen diğer karakterler) karakteriyle birleştirilmesi kavramının olduğu yönündeyim.

Not: Kakao Emacs'i kullanmak bir seçenek değildir ve "C- (") gerekliliğinin sebebi, paredit.el'in diğer tuş kombinasyonları arasında kullanmasıdır ve yeniden taklit edilmemesi tercih edilir (çünkü "C- (") .

cevap

14

Bir VT100 terminali bunu yapamadı çünkü ('a karşılık gelen ^( kontrol karakteri yoktur. Bununla birlikte, xterm, "modifyOtherKeys" olarak adlandırılan modlara sahiptir ve bu, böyle kombinasyonlar için benzersiz anahtar kodları göndermesine izin verir.

Bunu etkinleştirmek için, modifyOtherKeys kaynağını, örn. ~/.Xdefaults yılında: gerçi oldukça uzun olduğunu

^[[27;6;40~ 

, o tanıtıldı gibi tekrarların için çok başka biçim, ayarlayarak etkinleştirilebilir: aldığımızda

XTerm*vt100.modifyOtherKeys: 1 

, Ctrl + (aşağıdaki anahtar kodu gönderecek formatOtherKeys kaynak: aldığımızda

XTerm*vt100.formatOtherKeys: 1 

, Ctrl + (gönderir:

^[[40;6u 

Her iki bu kodda, 40, ( için ondalık ASCII kodudur ve 6, Ctrl.

Daha fazla bilgi için man xterm ve http://invisible-island.net/xterm/ctlseqs/ctlseqs.html adresine bakın. Terminal.app'un herhangi birini destekleyip desteklemediğine dair bir fikir yok.

+0

Teşekkür ederim, bu neredeyse nokta. Bulmacanın bir kısmı "C- (", ") sağladığınız çıkış kodunu buluyordu - ben de MacOS X'in Terminalinde çalışıyor olduğunu doğrulamayı başardım. Ancak, MacOS X'in Terminali ne yazık ki, keyfi haritalandırma için sağlanmadığını fark ettim. anahtarlar (bu durumda Ctrl + parantez) dizilerden kaçış - sadece fonksiyon, ok ve diğer birkaç anahtar eşlenebilir –

+1

iTerm2, dizilerin kaçışına yönelik keyfi tuşların yeniden düzenlenmesine izin verecektir –

+0

4 yaşından büyük ve hala insanları kurtarıyor arkadalar İyi adam @ ak2 :) – zeusdeux