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 - (".)

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top