View on GitHub

Xvim

Xcode plugin for Vim keybindings

Download this project as a .zip file Download this project as a tar.gz file

Logo

XVim is an open-source Xcode Plug-in that adds Vim keybindings to Xcode.

Demo of Vim's auto indentation with visual mode in Xcode

demo1

Find & Replace demo

Installation

Installing XVim is really straight forward:

Tips

.xvimrc

Xvim can use a .xvimrc file, which should be located in your ~/ directory. A simple sample file looks simmilar to a .vimrc.

i kk <Esc>
set incsearch

" Case-insensitive searching.
set ignorecase

" But case-sensitive if expression contains a capital letter.
set smartcase

" Default to global substitutions on lines
set gdefault

" Use the system pasteboard
set pasteboard

:xccmd

XVim can access Xcode's commands by using the :xccmd command. You can then set your preffered commands in your .xvimrc file.

" Map <space>b to toggle a breakpoint at the current line
nmap <space>b :xccmd toggleBreakpointAtCurrentLine<CR>

" Use <space>cm to toggle comments for the selection
nmap <space>cm :xccmd commentAndUncommentCurrentLines<CR>

FAQ

1. Why XVim may not work on a newly released Xcode version?

Xcode releases have different UUIDs, to make any Xcode plug-in work, the UUID that the plug-in is using must be updated to match Xcode's. Usually this takes us less than a day, but you can also do it yourself.

2. Why my key mapping doesn't work?

Maybe your key mapping is clashing with an Xcode key mapping (or even with other plug-in mapping), try to disable them to see if that fixes the issue.

3. My favorite Vim feature isn't working... Why?

Check out XVim's feature list. If you don't find your feature listed there create an issue so that we can work on it.

Helping out

There are several ways to help out with XVim's development.

Authors and Contributors

XVim was created by @JugglerShu on 2012, he is the main project maintainer, he's not very picky with Pull Requests, but try to make them concise. @Goles maintains the website, so if you find anything to be missing just give him a shout.