Come posso inviare C- / (ovvero, control-slash) al terminale?

12

Sto cercando di eseguire Emacs in un terminale. Ho attivato l'opzione "usa come meta" nelle preferenze del terminale e quindi funziona al 95%.

La sequenza di tasti ctrl- / (o nella notazione Emacs C- /) è "annulla". Questa sequenza di tasti fa sì che il terminale suoni un campanello. Come posso risolvere questo problema?

    
posta Kevin Peterson 06.09.2011 - 01:47
fonte

2 risposte

18

Control- / non fa parte dell'insieme di codici di controllo standard . Non è direttamente rappresentabile come un tasto in molte emulazioni di terminale. Tale sequenza di tasti è rilevabile correttamente solo in determinate "modalità scancode" o "modalità GUI" specifiche della piattaforma (in cui l'API indica esattamente quali chiavi e modificatori vengono utilizzati). L'emulatore di terminale emette un segnale acustico perché è effettivamente una sequenza di tasti non valida.

I codici di controllo standard coprono solo le versioni "Control" di

  • @ A - Z [\]^_ (ASCII 0 - 31) e
  • ? (ASCII 127)

Nella maggior parte dei programmi di emulazione di terminale che funzionano con la maggior parte dei layout di tasti statunitensi potrebbe essere necessario premere Maiusc per generare alcuni dei "codici di controllo":

  • C- @ è Controllo Maiusc 2 (poiché @ è Maiusc 2 )
  • C- ^ è Controllo Maiusc 6 (poiché ^ è Maiusc 6 )
  • C-_ è Controllo Maiusc - (poiché _ è Maiusc - )
  • Tuttavia, C-? potrebbe non essere sempre Controllo Maiusc / (poiché ? è Maiusc / ); C-? viene generalmente generato da Backspace (sulle tastiere Apple, il tasto identifica solo "elimina" senza il simbolo aggiuntivo ⌦) o Elimina (quello con ⌦ sulle tastiere Apple).

In Emacs basato su Tty, puoi solitamente usare C-_ per undo invece di C - /.

    
risposta data 06.09.2011 - 09:33
fonte
3

Ctrl- / invia 0x1f che è equivalente a Ctrl-_ dai giorni di VT102. Esistono molti emulatori VT100 ma in realtà sono emulatori VT102. iTerm2 funziona perché sta seguendo questo comportamento.

Solo gli emulatori che sono strettamente conformi alle specifiche VT100 non possono inviare Ctrl- /. Credo che l'app Terminal sia una di quelle.

VT100 maschera 2 bit più significativi di ASCII a 7 bit quando viene premuto il tasto di controllo. / è 0x2f, o è 0x6f. Quando i 2 bit sono mascherati, sono entrambi 0x0f. VT100 può inviare Ctrl-o ma non Ctrl - /.

    
risposta data 13.02.2016 - 09:35
fonte

Leggi altre domande sui tag