I've found ^S mapped to be the fwd-search key for zsh (ohmyzsh) but I would like to use it in vim for various mappings as well - it seems like the zsh mapping is preventing me from using it now.

Any way to unmap the bindkey or have it both ways?

  • Are you sure that it's oh-my-zsh? I couldn't find anything in its sources where bindkey maps Ctrl-S. – Daniel Beck Feb 2 '12 at 15:15
  • yeah, i think it is actually default zsh - i mention ohmyzsh in case there is something there that might be important as well - i'm still new new zsh – liamgriffiths Feb 2 '12 at 15:23
  • On my system (never used zsh before) Ctrl-S suspends, as it should. Have you checked your zsh profile files? – Daniel Beck Feb 2 '12 at 15:26
  • i'm still digging around - hoping i could find insight here faster :-) ... previously bash for me worked out fine with C-s – liamgriffiths Feb 2 '12 at 15:27
  • To investigate zsh mappings/bindings, use bindkey. Use bindkey "^S" to see what Ctrl-S specifically is bound to. Look up details on the bound "widgets" with man zshzle. – trailing slash Mar 1 '17 at 16:57

This is probably flow-control, which is handled by your terminal and not your shell. Typically control-s stops terminal output, and control-q resumes it. See the note in ":help ctrl-s".

To remove this behavior, you could try these shell commands:

stty stop undef
stty start undef

This may not work, though. If you are using a GUI terminal emulator, try looking for flow control settings within its options.


I shot it down in two steps:

  1. Disabling flow control in Konsole:

    • Settings > Manage Profiles... > Edit Profile > Advanced (tab) > uncheck 'Enable Flow Control [...]')

  2. Tell Zsh about it, too:

    setopt noflowcontrol

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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