Invia “C- (” a Emacs nel terminale VT100 / xterm (Terminale di Mac OS X)?

È ansible in qualche modo inviare il tasto “C- (” a Emacs su un terminale VT100 / xterm (terminale Mac OS X)? Esiste una sequenza di escape che potrebbe essere inviata per ottenere l’equivalente?

Ho il sospetto che il problema fondamentale sia che il concetto di combinare il controllo con il carattere “(” (e altri caratteri simili che vengono prodotti usando shift) non esiste.

Nota: l’uso di Cocoa Emacs non è un’opzione. E la ragione per aver bisogno di “C-” è che paredit.el lo usa tra le altre combinazioni di tasti, e sarebbe preferibile non rimapparlo (perché ha senso averlo su “C- (“).

Un terminale VT100 non può farlo, perché non c’è ^( carattere di controllo corrispondente a ( ., Tuttavia, xterm ha la cosiddetta modalità “modifyOtherKeys”, che consente di inviare codici chiave univoci per combinazioni del genere.

Per abilitarlo, imposta la risorsa modifyOtherKeys , ad esempio in ~/.Xdefaults :

 XTerm*vt100.modifyOtherKeys: 1 

Con questo, Ctrl + (invierà il seguente codice di accesso:

 ^[[27;6;40~ 

È piuttosto lungo, quindi è stato introdotto un altro formato per i keycode come quello, che può essere abilitato impostando la risorsa formatOtherKeys :

 XTerm*vt100.formatOtherKeys: 1 

Con quello, Ctrl + (invia:

 ^[[40;6u 

In entrambi questi keycode, il 40 è il codice ASCII decimale per ( , e il 6 rappresenta il Ctrl.

Vedere man xterm e http://invisible-island.net/xterm/ctlseqs/ctlseqs.html per ulteriori dettagli. Nessuna idea se Terminal.app supporti nessuno di questi.