Send “C- (” per Emacs in VT100 / terminale xterm (Terminal di Mac OS X)?
Domanda
E 'possibile in alcun modo per inviare il tasto "C (" per Emacs nel corso di un / terminale xterm VT100 (Mac OS X Terminal)? C'è una sequenza di escape che potrebbe essere inviato per raggiungere l'equivalente?
sospetto il problema fondamentale è che il concetto di combinare controllo con il carattere "(" (e altri tali caratteri che vengono prodotti utilizzando shift) non esiste.
Nota: L'uso di cacao Emacs non è un'opzione. E perchè ci serve "C- (" è che paredit.el usa tra le altre combinazioni di tasti, e sarebbe preferibile non rimapparla (perché senso avere su "C - (".)
Soluzione
Un terminale VT100 non poteva farlo, perché non v'è alcun carattere di controllo corrispondente al ^(
(
. Tuttavia, xterm ha la modalità cosiddetta "modifyOtherKeys", che non consente di inviare keycodes unici per le combinazioni del genere.
Per abilitarla, impostare la risorsa modifyOtherKeys
, per esempio in ~/.Xdefaults
:
XTerm*vt100.modifyOtherKeys: 1
Con questo, Ctrl + (invierà il seguente codice di accesso:
^[[27;6;40~
Questo è piuttosto lungo, però, quindi un altro formato per keycode del genere è stata introdotta, che può essere attivata impostando la risorsa formatOtherKeys
:
XTerm*vt100.formatOtherKeys: 1
Con questo, Ctrl + (invia:
^[[40;6u
In entrambi questi keycodes, il 40 è il codice decimale ASCII per (
, e il 6 rappresenta il Ctrl.
Vedere man xterm
e http://invisible-island.net/xterm/ctlseqs/ctlseqs .html per ulteriori dettagli. Non ho idea se Terminal.app supporta qualsiasi di esso.