[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#736939: ITP: vim-fugitive -- A Git wrapper so awesome, it should be illegal



Package: wnpp
Severity: wishlist
Owner: Andrea Capriotti <capriott@debian.org>

* Package name    : vim-fugitive
  Version         : 2.0
  Upstream Author : Tim Pope <vim.org@tpope.org>
* URL             : http://www.vim.org/scripts/script.php?script_id=2975
* License         : Vim license
  Programming Lang: Vim
  Description     : A Git wrapper so awesome, it should be illegal

 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 that mofo. And guess what :Gcommit does!

 :Gblame brings up an interactive vertical split with git blame output. Press
 enter on a line to edit the commit where the line changed, or o to open it in
 a split. When you're done, use :Gedit in the historic buffer to go back to the
 work tree version.

 :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.

 Use :Gbrowse to open the current file on GitHub, with optional line range (try
 it in visual mode!). If your current repository isn't on GitHub, git instaweb
 will be spun up instead.

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

 Last but not least, there's :Git for running any arbitrary command, and Git!
 to open the output of a command in a temp file.


Reply to: