All Projects → vim-scripts → fugitive.vim

vim-scripts / fugitive.vim

Licence: other
A Git wrapper so awesome, it should be illegal

Programming Languages

Vim Script
2826 projects
This is a mirror of http://www.vim.org/scripts/script.php?script_id=2975

I'm not going to lie to you; fugitive.vim may very well be the best Git wrapper of all time. Check out these features:

View any blob, tree, commit, or tag in the repository with :Gedit (and :Gsplit, :Gvsplit, :Gtabedit, ...). Edit a file in the index and write to it to stage the changes. Use :Gdiff to bring up the staged version of the file side by side with the working tree version and use Vim's diff handling capabilities to stage a subset of the file's changes.

Bring up the output of git-status with :Gstatus. Press `-` to add/reset a file's changes, or `p` to add/reset --patch. And guess what :Gcommit does!

:Gblame brings up an interactive vertical split with git-blame output. Press enter on a line to reblame the file as it stood in that commit, or`o` to open that commit in a split.

 :Gmove does a git-mv on a file and simultaneously renames the buffer. :Gremove does a git-rm on a file and simultaneously deletes the buffer.

Use :Ggrep to search the work tree (or any arbitrary commit) with git-grep, skipping over that which is not tracked in the repository. :Glog loads all previous revisions of a file into the quickfix list so you can iterate over them and watch the file evolve!

:Gread is a variant of `git checkout -- filename` that operates on the buffer rather than the filename.  This means you can use `u` to undo it and you never get any warnings about the file changing outside Vim. :Gwrite writes to both the work tree and index versions of a file, making it like git-add when called from a work tree file and like git-checkout when called from the index or a blob in history.

Add %{fugitive#statusline()} to 'statusline' to get an indicator with the current branch in (surprise!) your statusline.

Oh, and of course there's :Git for running any arbitrary command.

The preferred submission method for bug reports, feature requests, and patches is GitHub issues: http://github.com/tpope/vim-fugitive. I also accept email.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].