60

I have two different machines (home and work) running Ubuntu 18.04. Last night vim froze at home. I was in insert mode and typing and went to save (esc :w) and nothing happened. The status bar still reads -- INSERT --, the cursor is still blinking where it was. I was stuck. I couldn't find a way out. I couldn't type (nothing happened when I type), I couldn't move around (the up and down arrows did nothing). It was stuck in insert mode with the cursor blinking where it was.

I was definitely multitasking and probably hit some other keys in there, but I don't know what keys. It was late, though, so I closed the terminal window and tried again (I was entering a git commit message). It happened again partway through my typing so I switched to git commit -m "don't need an editor for this" instead. And then I shut down my computer and stopped working.

I figured I was just tired, but then it happened to me today at work on a different laptop altogether. Again I was multitasking and can't swear I didn't type any bizarro key sequence but if I did it was accidental. And other tabs in the same terminal aren't frozen.

I'm used to getting trapped in visual mode in vim. That's a trick I've learned. But stuck in insert mode? Any ideas on what I might've done and how to get out of it?

Per a comment suggestion I tried looking at .viminfo but the only .viminfo I see is owned exclusively by root and only appears to show things I would have edited with 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

It seems odd that I wouldn't have an unprivileged .viminfo but I did sudo udpatedb and locate .viminfo and still didn't surface more than the one root-owned file.

0

3 Answers 3

144

One key that I frequently fat-finger by mistake is CtrlS; that stops all terminal output until a CtrlQ is typed.

That's the XON/XOFF control-flow, which is enabled by default, and ^S and ^Q are the default VSTART and VSTOP keys respectively -- see the stty(1) and termios(3) manpages.

You can disable it with:

stty -ixon

vim will not reenable it as part of its changing the terminal settings.

0
1

If you're running vim in gnome-terminal, right clicking on the terminal and making sure the "Read-Only" option isn't checked in the resulting context menu might help.

When I run vim in gnome-terminal I have a context memu that can pop either in response to right-clicking or by hitting a menu button on my keyboard. The context menu that pops up includes "Read-Only" checkbox. Sometimes, when I accidentally hit the special menu button on my keyboard, which is down by the right Ctrl key, I accidentally toggle that read-only toggle. This keeps the keystrokes from getting to the terminal, and thus to vim. Right clicking on the terminal and making sure it isn't "Read-Only" might help.

0

If you have CoC installed, try waiting a couple minutes.

I've been having occasional Vim freezes. While searching for an answer just now, it unfroze itself and a CoC error popped up.

I'll update this post with more details once (or if) I get to the actual root of the problem, but for now, just wait for a couple minutes before you nuke your session.

1
  • Likely, vim was waiting for I/O. You can check with the ps tool that the vim process was in the D state while it hanged and resumed later on. Sometimes it is a child of vim that is waiting. Commented Feb 5 at 22:13

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.