Terminal wurde beim Bearbeiten von etwas in vi gehängt


13

Ich habe mit dem Terminal einige Änderungen an einer Remote-Datei in vi vorgenommen, als ich versehentlich Ctrl+ Sanstelle von gedrückt habe :wq.

Jetzt wurde alles aufgehängt. Ich habe versucht Escape,:q!und alle Arten von vi Kommandos, aber nichts reagiert. Der Terminal-Bildschirm bleibt hängen. Ich kann die Terminal-Sitzung ab sofort nicht mehr schließen, da dadurch alle Änderungen verloren gehen. Bitte schlagen Sie vor, was zu tun ist

Antworten:


23

Ctrl+ QWird rückgängig Ctrl+ S. Dies sind alte Steuercodes, mit denen die Ausgabe an ein Terminal gestoppt und fortgesetzt werden kann. Sie können immer noch nützlich sein, zum Beispiel, wenn Sie tailfeine Protokolldatei und interessante Bildläufe durcharbeiten, aber diese Ära der unbegrenzten Scrollback-Puffer hat sie wirklich überholt.


7

Ich möchte ergänzen die akzeptierte Antwort von zwets .

Sie können die Bedeutung spezieller Tastendrücke erkennen, indem Sie die Befehle stty -aund eingeben man stty.

stty -adruckt alle aktuellen Einstellungen des Terminals. Das Ergebnis in meinem 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 sttydruckt das Handbuch von stty. Der Teil, der hier relevant ist:

Spezielle Charaktere:

   start CHAR
          CHAR will restart the output after stopping it

   stop CHAR
          CHAR will stop the output
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.