Thread (11 messages) flat view 11 messages, 5 authors, 2016-06-15

Re: Extremely simple Vim interface for Git

From: Michael Wookey <hidden>
Date: 2016-06-15 22:45:19

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 '.<q-args>)
   command! -complete=file -nargs=* Svn   call s:RunShellCommand('svn '.<q-args>)
   command! -complete=file -nargs=+ Shell call s:RunShellCommand(<q-args>)

   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
If you alter the RunShellCommand() function to the following -

  function! s:RunShellCommand(cmdline)
      botright new
      setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile
      setlocal nowrap
      if stridx(a:cmdline, "diff") > 0
          set filetype=diff
      endif
      execute 'silent 0read !'.escape(a:cmdline,'%#')
      setlocal nomodifiable
      1
  endfunction

Then Vim will apply diff syntax highlighting to the scratch buffer
when a "diff" command is executed.

For example:

  :Git diff
  :Git diff --cached

etc..
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help