web-dev-qa-db-fra.com

Le terminal a été pendu lors de l'édition de quelque chose dans vi

J'étais en train d'apporter des modifications à un fichier distant dans vi en utilisant le terminal lorsque j'ai accidentellement appuyé sur Ctrl+S au lieu de :wq.

Maintenant tout a été pendu. J'ai essayé Escape,:q! et toutes sortes de commans vi mais rien ne répond. L'écran du terminal est bloqué. Je ne peux pas fermer la session Terminal dès maintenant car cela entraînerait la perte de tous les changements. S'il vous plaît suggérer ce qui devrait être fait

12
vipin8169

Ctrl+Q se défaire Ctrl+S. Ce sont d'anciens codes de contrôle pour arrêter et reprendre la sortie vers un terminal. Ils peuvent toujours être utiles, par exemple lorsque vous êtes tailf un fichier journal et que quelque chose d’intéressant défile, mais cette ère de mémoires tampon de défilement illimitées les a vraiment obsolètes.

20
zwets

Je voudrais compléter réponse acceptée par zwets .

Vous pouvez voir la signification des touches spéciales en entrant les commandes _stty -a_ et man stty .

_stty -a_ imprime tous les paramètres actuels du terminal. Le résultat dans mon terminal:

_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 stty imprime le manuel de stty. La partie qui est pertinente ici:

Caractères spéciaux:

_   start CHAR
          CHAR will restart the output after stopping it

   stop CHAR
          CHAR will stop the output
_
6
Bill