Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a developer who mostly does web stuff in ruby and C#.

I'd like to start tinkering with iOS and Mac development.

Over the last few month i've been trying to get fluent in one set of key bindings (vi / vim because it just feels right).

I have the awesome ViEmu installed for visual studio on windows which gives me a ton of the vim awesomeness side by side with visual studio power toys.

Is there anything like this for xcode?

I know I could set up MacVim as the default editor, but I'm not too interested in this as it means losing all of xcode's cocoa awareness.

The other option of course would be to go for the lowest common denominator and switch to emacs (as the mac keybindings are based massively on emacs) but let's not think about that for too long. :P

share

locked by maple_shaft Oct 18 '13 at 18:55

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

comments disabled on deleted / locked posts

6 Answers

I have just made one. Here is a link to it.

This is currently developed for personal (my) use. So you may feel bad with some lack of implementation. Give me a feedback (or feature requests) then. I'll add some keybinds or commands if I have enough time.

share
    
Latest build I tried works great on Xcode 4.3.2! –  Ivan Vučica Jul 2 '12 at 9:41
    
Works great! Thanks! –  Jaco Pretorius Jul 2 '12 at 19:41
    
i just downloaded it and built it.. but how do I use it? for example if i was using vim in the shell.. i'd press 'i' to enter edit mode and escape to enter vim command mode.. how do i do those in xcode? –  abbood Feb 22 '13 at 6:30
add comment

I never tried to used this because Xcode key bindings are not so bad but you could take a look at http://www.corsofamily.net/jcorso/vi/

share
add comment

I've been obsessed with finding a solution since moving to developing for iOS, and the best answer I've found so far (that works for Lion, too) is installing KeyRemap4MacBook and manually enabling some of the Ubiquitous Vim Bindings and Vi mode.

One of the awesome features that comes from doing this is that now other applications have Vim keybindings, too (for instance, I've been performing Normal mode commands while typing in this textarea on Chrome).

share
add comment

I just cloned the git repository xVim and ran the build in Xcode (as the instructions say), and it works like a champ. Right now, it has a limited keyset, but has what I need for now. And you get to look at the source code to learn how to write an XCode Plugin and work with Objective-C

share
add comment

Unfortunately, there are no Vim keybindings available for XCode (frustrating I know). XCode does however have a rich shortcut featureset.

This is a good shortcut cheat sheet (poster size) http://www.1729.us/xcode/Xcode%20Shortcuts.png

I think it is also important to realise that having Vim keybindings in XCode is not necessarily a good thing.

Vim has a minimalistic design with coding speed as a goal. Your fingers should never have to leave the keyboard. For this, a good set of keybindings is very important.

XCode is a feature rich development environment that simplifies (through the use of a GUI) many of the repetitive (or complicated) features that would otherwise get in the way of development. For this you will need to interact with the IDE and therefore having good keybindings is not crucial to the functionality of the IDE (as opposed to Vim).

share
add comment

ViEmu has become available for Xcode 4, I've tried it and it's far far better than all the other Vim emulators for Xcode.

share
add comment

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