Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

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

What I'm looking for is a way to use Vi-style keybindings throughout OS X, similar to how invoking:

$ set -io vi

in a Terminal will give Vi-style keybindings when using the shell.

I'm guessing this doesn't exist but it would be awesome if it did!

If it doesn't exist, anyone have an idea on how it could be approached using OS X's Cocoa APIs?

share|improve this question

There is an OSX only way to do this, without using any 3rd party apps. You just have to create a file ~/Library/KeyBindings/DefaultKeyBinding.dict and put what you want in it. See an example.

Since I dont use Vi, I'm not sure what the specific keybindings are, but there is a great page about Customizing the Cocoa Text System that should get you going.

share|improve this answer

There are two option:

  • Vi Input Manager which hasn't been updated since 2009.

  • KeyRemap4Macbook which I've used for a number of different options and has a Vi mode. I can't speak for how well the Vi mode works but the other aspect has been great in a few things I use it.

share|improve this answer

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.