Re: Bug#736939: ITP: vim-fugitive -- A Git wrapper so awesome, it should be illegal
Excerpts from Andrea Capriotti's message of 2014-01-28 08:49:34 -0800:
> 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.
>
I suspect there have been no responses to this yet because everyone who
would take issue with this is suffering from an exploded head. :)
My only criticism is, if you're going to evoke Richard Sherman's spirit,
do it right. I suggest changing the short description to just "DON'T
TALK ABOUT GIT-FUGITIVE".
Reply to: