VIM SVN plugin ( subversion svn vim7)
Vim script
Latest commit 1483c47 Oct 22, 2015 @juneedahamed Update


#NOTE: New and Improved version of the script with support for SVN, GIT, HG and BZR is now available at

Users of svnj.vim just need to change the .vimrc settings from svnj_ to vc_ after cloning the new script

VIM (VIM 7 and up) plugin for subversion (svn) Support for browsing the repository, working copy, bookmarks.

Also at :

##Screen shots







##Supported operations

svn add, svn commit, svn checkout, svn cp, svn log, svn status, svn diff, svn blame, svn list


  • SVNBrowse

    Browse the svn repository, working copy files from within vim. Options to bookmark files/directories for current vim session or provide permanent bookmarks/favorites.

    Available options for browsing are

      - SVNBrowse - Provides a menu for the Browsing commands
      - SVNBrowseRepo  - Lists files from repository
      - SVNBrowseWorkingCopy - Lists files from current dir
      - SVNBrowseMyList  - Lists files specifies from g:svnj_browse_mylist
      - SVNBrowseBookMarks - Lists Bookmarked files/dirs
      - SVNBrowseBuffer - List Buffer files

    Some of the operations supported are

      - Open directory/files
      - Recursive list directories
      - Navigate up one dir
      - Go to Start/Top
      - Open all files
      - Diff the current file with the file in buffer
      - Mark for open/diff
      - Bookmark file/dir
      - SVN Add
      - SVN Commit
      - SVN Checkout 
      - SVN Log
  • SVNLog

    Get the revisions of file in buffer. With the list of revisions from the output.

    • Open/diff required file revision (new buffer, vertical split)
    • Mark required revision to open/diff
    • List trunk
    • List branches
    • Diff/open files across branches/trunk
    • List affected files
    • SVN Diff with options :HEAD or :PREV
    • SVN Info
  • SVNStatus

    Get the output of svn st. With the listed files

    - Open any/all files
    - Mark required files to open
    - Pass q/u option to svn st
    - Global option to ignore files
    - Diff files
    - SVN Info
    - SVN Add
    - SVN Commit
  • SVNCommit

    Commits the current file in buffer when no arguments are passed, Applicable arguments are file/directory to commit. A new buffer will be opened to accept commit comments. The buffer will list the files which are candidates for commit. Files/Directories can also be updated in this buffer. A commit can be forced with no comments with a bang. SVNCommit is supported as a command and also as an operation from the SVNStatus output window. see :help SVNStatus

  • SVNBlame

    Vertically splits the blame info for the file in bufffer. Scrollbinds to the file. Takes files as arguments

  • SVNDiff

    Immediate diff the file in buffer with the previous revision. For diff with required/any revision use SVNLog. If there are more than one file in buffer Ctrl-n/Ctrl-p will close the current diff and move to the next/prev file in buffer and opens a diff for the said file

  • SVNClearCache

    The cache / persistency is not enabled by default. please see help SVNClearCache for more info.

  • SVNInfo

    Will display svn info for the file in buffer when no args, Accepts file/dirs as args

  • SVNCommits

     Get the list of files checked in across project revision. This command lists the output of svn log of the project directory.  


###Options 1: (Pathogen Users)

  1. cd ~/.vim/bundle
  2. git clone

###Option 2:

  1. git clone
  2. copy files from svnj.vim/plugin to ~/.vim/plugin
  3. copy files from svnj.vim/autoload to ~/vim/autoload
  4. copy files from svnj.vim/doc to ~/vim/doc
  5. Run at vim's command :helptags doc

##Basic Usage

Run from vim commandline

  1. :SVNBlame
  2. :SVNDiff
  3. :SVNLog
  4. :SVNStatus
  5. :SVNCommit
  6. :SVNCommits
  7. :SVNAdd
  8. :SVNBrowse
  9. :SVNBrowseWorkingCopy
  10. :SVNBrowseRepo
  11. :SVNBrowseBookMarks
  12. :SVNBrowseMyList
  13. :SVNBrowseBuffer
  14. :help svn

##Settings .vimrc

####Custom settings

`let g:svnj_custom_statusbar_ops_hide = 1`

Supported operations are listed on the status line of the svnj_window. With growing support for
many commands, recomend to hide it. You can still have a quick glance of supported operations by
pressing ? (question-mark)

####Cache settings

`let g:svnj_browse_cache_all = 1`

This enables caching, Listing of files will be faster, On MAC/Unix the default location is $HOME/.cache.
A new directory svnj will be created in the specified directory.

For windows this option must be specified along with the cache dir
    `let g:svnj_cache_dir="C:/Users/user1"`

####To list all branches or trunk

Optional settings when available will provide menu's to navigate available branches/trunk

let g:svnj_branch_url = ["svn://", "svn://"]

let g:svnj_trunk_url = "svn://"

For more info run :help svnj-options

####To allow default mappings

  1. let g:svnj_allow_leader_mappings=1

    For more info run at command line :help svnj-mappings