web-dev-qa-db-fra.com

Pourquoi Vim est-il gelé?

J'ai deux machines différentes (à la maison et au travail) exécutant Ubuntu 18.04. Hier soir, vim a gelé à la maison. J'étais en mode insertion et en tapant et je suis allé enregistrer (esc :w) et rien ne s'est passé. La barre d'état affiche toujours -- INSERT --, le curseur clignote toujours où il était. J'étais coincé. Je n'ai pas trouvé de sortie. Je ne pouvais pas taper (rien ne se passait lorsque je tapais), je ne pouvais pas me déplacer (les flèches haut et bas ne faisaient rien). Il était bloqué en mode insertion avec le curseur clignotant où il était.

J'étais certainement multitâche et j'ai probablement appuyé sur d'autres touches, mais je ne sais pas quelles touches. Il était tard, cependant, j'ai donc fermé la fenêtre du terminal et réessayé (j'entrais un message de validation git). C'est arrivé encore à mi-chemin de ma frappe, donc je suis passé à git commit -m "don't need an editor for this" au lieu. Et puis j'ai éteint mon ordinateur et arrêté de travailler.

Je pensais que j'étais juste fatiguée, mais ensuite, cela m'est arrivé aujourd'hui au travail sur un autre ordinateur portable. Encore une fois, j'étais multitâche et je ne peux pas jurer que je n'ai tapé aucune séquence de touches bizarro mais si je le faisais, c'était accidentel. Et les autres onglets du même terminal ne sont pas figés.

J'ai l'habitude d'être piégé en mode visual dans vim. C'est une astuce que j'ai apprise. Mais coincé en mode insertion? Avez-vous des idées sur ce que j'aurais pu faire et comment m'en sortir?

Par une suggestion de commentaire, j'ai essayé de regarder .viminfo mais le seul .viminfo Je vois est la propriété exclusive de root et ne semble montrer que ce que j'aurais modifié avec Sudo:

# Input Line History (newest to oldest):

# Debug Line History (newest to oldest):

# Registers:

# File marks:
'0  1  0  /etc/neomuttrc
|4,48,1,0,1531789956,"/etc/neomuttrc"
'1  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,49,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
'2  51  0  /etc/apt/sources.list
|4,50,51,0,1530816531,"/etc/apt/sources.list"

# Jumplist (newest first):
-'  1  0  /etc/neomuttrc
|4,39,1,0,1531789956,"/etc/neomuttrc"
-'  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-'  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"

# History of marks within files (newest to oldest):

> /etc/neomuttrc
    *   1531789952  0
    "   1   0

> /etc/apt/sources.list.d/signal-bionic.list
    *   1530816564  0
    "   1   66
    ^   1   67
    .   1   66
    +   1   66

> /etc/apt/sources.list
    *   1530816454  0
    "   51  0

Il me semble étrange que je n’aurais pas de _ .viminfo mais je l'ai fait Sudo udpatedb et locate .viminfo et n'a toujours pas fait surface plus qu'un seul fichier appartenant à la racine.

15
Amanda

Une des clés que j'ai souvent fat-finger par erreur est CtrlS; qui arrête toute sortie terminale jusqu'à ce qu'un CtrlQ est tapé.

C'est le flux de contrôle XON/XOFF, Qui est activé par défaut, et ^S Et ^Q Sont respectivement les touches par défaut VSTART et VSTOP - voir les pages de manuel stty(1) et termios(3) .

Vous pouvez le désactiver avec:

stty -ixon

vim ne le réactivera pas dans le cadre de la modification des paramètres du terminal.

29
mosvy