Il terminale è stato impiccato durante la modifica di qualcosa in vi


13

Stavo apportando alcune modifiche a un file remoto in vi usando il terminale quando ho premuto accidentalmente Ctrl+ Sinvece di :wq.

Ora tutto è stato impiccato. Ho provato Escape,:q!e tutti i tipi di comman vi, ma nulla risponde. Lo schermo del terminale è bloccato. Al momento non riesco a chiudere la sessione del Terminale poiché ciò porterà alla perdita di tutte le modifiche. Si prega di suggerire cosa si dovrebbe fare

Risposte:


23

Ctrl+ Qannulla Ctrl+ S. Questi sono antichi codici di controllo per arrestare e riprendere l'output su un terminale. Possono ancora essere utili, ad esempio quando si sta tailfeseguendo un file di registro e scorre qualcosa di interessante, ma questa era di buffer di scrollback illimitati li ha davvero obsoleti.


7

Vorrei integrare la risposta accettata da zwets .

Puoi vedere il significato dei tasti premuti speciali emettendo i comandi stty -ae man stty.

stty -astampa tutte le impostazioni correnti del terminale. Il risultato nel mio terminale:

speed 38400 baud; rows 33; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk > -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

man sttystampa il manuale di stty. La parte rilevante qui:

Personaggi speciali:

   start CHAR
          CHAR will restart the output after stopping it

   stop CHAR
          CHAR will stop the output
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.