From: Teemu Likonen Date: Sat, 06 Sep 2008 19:37:44 GMT Subject: Extremely simple Vim interface for Git Message-ID: <20080906193744.GA3122@mithlond.arda.local> Here's a very simple idea for using Git from Vim editor. Add these lines to your ~/.vimrc file: command! -complete=file -nargs=* Git call s:RunShellCommand('git '.) command! -complete=file -nargs=* Svn call s:RunShellCommand('svn '.) command! -complete=file -nargs=+ Shell call s:RunShellCommand() let $EDITOR = '/usr/bin/gvim --nofork' function! s:RunShellCommand(cmdline) botright new setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile setlocal nowrap call setline(1,a:cmdline) call setline(2,substitute(a:cmdline,'.','=','g')) execute 'silent 2read !'.escape(a:cmdline,'()%#') setlocal nomodifiable 1 endfunction Now, command :Git works just like "git" from shell except that the output is displayed in a Vim scratch buffer/window. The buffer will be wiped out from memory when the window is closed. Filename completion and piping works. Examples: :Git diff --cached :Git help merge :Git branch | column (I am aware that there are VCS plugins for Vim. I happen like this approach better because it works just like the command line Git which I'm familiar with.) As a "side effect" this also adds similar :Svn command as well as :Shell command which can be used to run any shell command and have its output displayed in a Vim window. Using the first two letters of :Shell is enough in my system because I don't have other custom commands which start with letters "Sh". :Sh ls -l