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
Installation
Installing XVim is really straight forward:
-
Checkout XVim
git clone git@github.com:XVimProject/XVim.git
- Run
make
from XVim's directory.
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.
- Open up an issue in Github if you find bugs, experience issues or have questions.
- XVim does also support Bounty Source in case you want your issue solved faster or just want to donate to the project.
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.