gitv is a ‘gitk clone’ plugin for the text editor Vim. The goal is to give you a similar set of functionality as a repository viewer. Using this plugin you can view a repository’s history including branching and merging, you can see which commits refs point to. You can quickly and easily view what changed to which files and when. You can perform arbitrary diffs (using Vim’s excellent built in diff functionality) and you can easily check out whole commits and branches or just individual files if need be.

Throw in the fact that it is running in Vim and you get for free: the ability to move over repository history quickly and precisely using Vim’s built in movement operators. You get excellent code syntax highlighting due to Vim’s built in ability. You can open up all sorts of repository views in multiple windows and position them exactly how you like. You can take advantage of Vim’s registers to copy multiple fragments of code from previous commits. The list goes on.

This plugin is an extension of the fugitive plugin.

I hope you like it!


Install in ~/.vim, or in ~\vimfiles if you’re on Windows. This plugin should be fully pathogen compatible if you want to install it this way.

gitv was developed against Vim 7.3 but earlier versions of Vim should work. Vim 7.2+ is recommended as it ships with syntax highlighting for many Git file types. You will also need the fugitive plugin installed and working for gitv to work.

Screenshots and Links

Please consider contributing to gitv’s github repo:

You can download stable release versions (and vote for gitv!) at gitv’s page on

Here are some screenshots.

gitv- gitv in browser mode.

gitv file mode diff- gitv in file mode, performing a file diff.

gitv diffing two files- gitv in browser mode, diffing a file.

gitv diffstat- gitv in browser mode, showing a diffstat.

Leave a Reply


Responses to “gitv”

  1. This is amazing, thanks man, gonna try gitv tonight :)

  2. Amazing work, Greg. Just out of curiosity, what color scheme are you using? Can you share it?

  3. Dude, looks awesome, will try it right now, thanks for your work! :-)

  4. Very impressive! Trying it out immediately.

  5. Have you heard about tig? Should I keep using it or switch to gitv? :)

    • I’ve heard of tig. Why not use both? I would say that gitv is preferable if you already use Vim, as you can integrate it directly into your workflow. Give gitv a try and see which you prefer! :)

  6. Glorious!

  7. Great plugin! Thank you so much!

    BTW have you thought about some nice implementation / abbrevation of rebasing / merging / working with stash? That would be wonderful!

    Second thing I miss is automatic fold in browsing mode (when I view some commit) – that would be much more readable, especially when commit changes more files.

    • I’m currently having a look at implementing a merging and rebasing command but I want it to be really intuitive and haven’t quite gotten it right yet.

      I’m not quite sure what you mean by ‘automatic fold’. When opening a commit in browser mode, the diff of each file affected by the commit should be a fold already collapsed. Is this not the case for you? If so, would you mind putting an issue on the github page explaining how you produce this behaviour.



  8. without –decorate=full at gitv.vim:244 it works fine
    with git version 1.6.4.msysgit.0

    Great work thank you for sharing it!

  9. Gitv is awesome! But for some reason whenever I select a commit/diff it opens in a vertical split, any way to get it to be a horizontal one?

  10. thank you for this great tool!)

  11. :) bardzo ciekawy artykuł !

  12. Is it somehow possible to display branch for each commit ?

  • How did this function end up like this? » -
  • Rounded Corners 350 – Text from dog /by @assaf
  • Sofia broser | Audodo
  • gitv便利 - まつぼ x Web
  • 役立ちそうな Vim プラグインまとめ | Yas Journal
  • -->