Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been using Vim for several months now via my web host (they allow putty access). All of a sudden, the escape key has become unresponsive. I cannot exist insert or any other mode by simply hitting escape. I have to hit F1 which brings up the help in vim and kicks me into command mode.

I'm most certain that my escape key on my keyboard is functioning fine since all of my windows shortcuts that use the escape key operate normally.

I know this is a ridiculous question and I'm certain there's a lot more to look into regarding a solution. What I really need is a solid lead as to where to start looking.

Things that might help:

  1. I'm using vim via putty
  2. I'm logging in using jailshell
  3. I'm not root
share|improve this question
what are your terminal settings? ie what exactly is the TERM environment variable set to (in the remote shell)? – quack quixote Apr 11 '10 at 21:28
$TERM is set to 'xterm' – Levi Hackwith Apr 11 '10 at 21:33
Does Ctrl-[ work? What do you get if you press Ctrl-v then escape? It should show as ^[. – Dennis Williamson Apr 11 '10 at 21:35
The Ctrl-[ worked. Rock on! This saves me a lot of frustration. Is there any chance you can explain why esc no longer works? Also, please post your comment as an answer so I can accept it. – Levi Hackwith Apr 11 '10 at 21:42
up vote 8 down vote accepted

Try using Ctrl-[ instead of Esc.

What is the result of:

python -c "print ord(raw_input('char '))"

when you press Esc and Enter? It should be "27". What is the result of pressing Ctrl-V then Esc?

Have you checked all the settings in PuTTY to see if they're reasonable?

Are you using Bash on the remote system? Look at the output of

bind -p | grep -i '\\e' | less

and see if you see anything unusual. Do you have a file called ~/.inputrc? Look at its contents to see if anything is unusual.

Look at your ~/.vimrc and see if everything's OK, too.

share|improve this answer
Ctrl-c should end insert-mode as well (the '[' is sometime a bit tricky to get on some keyboards) – akira Jun 24 '10 at 9:42
I ran the python script and it came back as an empty string. How do I fix this? I'm using putty. – Keith Apr 26 '12 at 17:05
@Keith: Did you try any of the other diagnostic suggestions? – Dennis Williamson Apr 26 '12 at 17:25
ctrl+[ worked for me for whatever reason, no idea what i did to get my vim stuck. – Derek Adair Dec 10 '15 at 22:09

I had mistakenly hit Ctrl + s, and got stuck in the insert mode. To get out of it use Ctrl + q.

share|improve this answer
That's not insert mode that's XOFF. You can disable software flow control by doing stty -ixon (add it to your ~/.bashrc). Then that keystroke will be available to be bound to something else. By default in Bash it's bound to forward-search-history (the opposite of Ctrl-r). Ctrl-q (Bash quoted-insert) will also be available. – Dennis Williamson Jul 2 '12 at 14:18
@DennisWilliamson Wouldn't .bash_profile be a better place? There's no need to turn it off in non-interactive shell, is it? – Piotr Dobrogost Mar 4 '14 at 22:14
@PiotrDobrogost: "When an interactive shell that is not a login shell is started, Bash reads and executes commands from ~/.bashrc, if that file exists." .bash_profile is only executed when Bash is a login shell. "So, typically, your ~/.bash_profile contains the line if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" – Dennis Williamson Mar 4 '14 at 22:22
thanks! that's what I did. So glad other people habitually save like that regardless of program. :-) – NullVoxPopuli Aug 27 '14 at 12:11
Saved me twice. – Elazar Apr 22 at 12:51

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.