Problema con la schermata GNU quando si utilizza Emacs Cx Cs (save-buffer)


33

Quando sto usando emacs sotto GNU Screen, se chiamo Cx Cs lo schermo si blocca e non risponde a nessun input da tastiera.

Non riesco a riprodurlo, ma almeno una volta al giorno devo interrompere la sessione dello schermo e riavviarlo.

Come posso risolvere questo?

Grazie


Quale Unix? Esistono molte differenze nella gestione dei terminali tra Linux, BSD, Solaris, ...
Grawity,

1
Attualmente sto usando Putty per ssh in un'istanza LTS di Ubuntu Server.
simao,

Risposte:


52

CtrlSè il carattere di controllo del flusso "Pausa trasmissione" (XOFF) . Di solito è gestito dal driver tty, o in questo caso Schermo. Il suo opposto è XON, o CtrlQ.

Quando avvii Emacs, normalmente assume la maggior parte dei caratteri speciali (non solo il controllo del flusso, ma anche il solito CtrlC"Interruzione", per esempio).

  • Utilizzare C-a :flow offper disabilitare il controllo del flusso per questa finestra dello schermo.

    Confermare con C-a :info(cercare -flownel pop-up).

  • Se non aiuta, prova stty -ixono stty stop undef.

    (Puoi farlo da una finestra separata usando stty -f /dev/tty1o stty </dev/tty1.)

Sul mio sistema (Linux), Schermo fa avviso quando il controllo di flusso è disabilitato per il TTY. Tuttavia, il tuo sistema operativo potrebbe presentare alcune limitazioni.


:flow offlavorato. Grazie! in qualche modo posso renderlo permanente?
simao,

1
@simao: vedere defflownella pagina del manuale di screen.
gravità

3
Elaborazione dei commenti di @simao e @ grawity - Per disabilitare permanentemente il controllo del flusso (suppongo che questo sia il risultato desiderato per la maggior parte delle persone), aggiungere la linea defflow offal ~/.screenrcfile o crearne una nella directory home se non esiste già. Questo è stato sufficiente per consentire al mio emacs di funzionare correttamente all'interno di una screenfinestra. Questo approccio dovrebbe essere considerato prima di ricollegare qualsiasi chiave.
pscl

2
Ciò ha risolto il problema per me, ma devo ancora imparare perché lo schermo "tutto ad un tratto" è stato messo in questa modalità .... forse c'è un tratto del tasto dello schermo che consente il controllo del flusso che ho digitato inavvertitamente ... ?? ?
Malcook,

1
Stiamo parlando dello schermo GNU e di GNU Emacs, e non hanno trovato un modo per far funzionare entrambi senza problemi ?? ...
Yves Baumes,

4

Ho avuto gli stessi problemi con lo schermo bloccato e molti altri durante l'utilizzo di emacs sotto lo schermo. Ad esempio, Ca in emacs, che ti porta all'inizio della linea, viene intercettato dallo schermo e non funziona.

SOLUZIONE:

Crea un file .screenrc nella tua home directory con il seguente:

#Change escape character to C-u 
escape "^uu"                                                                    
#unbind ctrl+s from xoff in order to be able to search in emacs                 
bind s                                                                          
bind ^S                                                                         
#unbind ctrl+x from lockscreen in order to be able to save in emacs             
bind x                                                                          
bind ^X                                                                         

Quindi ogni volta che apri una nuova schermata invece di usare Ca devi usare Cu per inserire un nuovo comando di schermata. Le altre due modifiche si occupano di un altro paio di cose che dovevo cambiare per poter utilizzare Emacs sotto schermo senza problemi.


C-uè una chiave importante per emacs. Non penso sia una buona idea, ma l'idea di cambiare .screenrc è la migliore alternativa.
vfclists
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.