fugitive.vim : A Git wrapper so awesome, it should be illegal
script karma |
Rating 4144/1220,
Downloaded by 18233 |
Comments, bugs, improvements
|
Vim wiki
|
created by |
Tim Pope |
|
script type |
utility |
|
description |
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: https://github.com/tpope/vim-fugitive. I also accept email. |
|
install details |
Extract in ~/.vim (~\vimfiles on Windows). |
|
script versions (upload new version)
Click on the package to download.
fugitive.zip |
3.2 |
2020-01-21 |
7.0 |
Tim Pope |
Provide :Git mergetool to load conflicts into quickfix list.
Provide :Git difftool to load arbitrary changesets into quickfix list.
Call FugitiveBlob/FugitiveCommit/etc autocommands on Fugitive buffer load.
:Git --paginate display results in temp buffer.
:Git --no-pager no longer displays results in temp buffer.
Accomodate loading Fugitive buffers in popup window.
Better PowerShell support.
Bug fixes. |
fugitive.zip |
3.1 |
2019-10-11 |
7.0 |
Tim Pope |
Commands are now global, not buffer local.
Calling a command in an unnamed buffer uses the working directory.
Preserve line number on :Gedit to return to work tree buffer.
Better submodule support in :Gstatus.
Support git-blame revision ignoring features.
Show first parent diff in merge commit buffer.
Remove deprecated support for .git/tags.
Bug fixes. |
fugitive.zip |
3.0 |
2019-08-20 |
7.0 |
Tim Pope |
Use custom format for :Gstatus, not literal git status output.
Inline diffing in :Gstatus, with support for staging individual hunks.
List unpushed and unpulled commits in :Gstatus.
Show rebase status in :Gstatus.
Greatly expanded set of mappings in :Gstatus. Try g?, c?, and r?.
:Gstatus p (add --patch) is changed to P.
:Gstatus U (checkout/clean) is changed to X. New U behavior is global reset.
:Gstatus 2X/3X performs checkout --ours/--theirs.
:Gstatus gI ignores file.
Smarter :Gstatus automatic reload.
:Git subcommand calls :Gsubcommand when appropriate.
:Git add --patch and similar commands use :terminal.
:Git diff, :Git log, and :Git --no-pager display results in temp buffer.
:Git and subcommand wrappers use custom quoting rather than shell escaping.
:Git ... ./path is relative to working directory.
Add --option completion to :Git and git wrappers.
Provide :G as wrapper for both :Gstatus and :Git.
Support for :Grebase --interactive.
:Gblame accepts all arguments, including filenames and commits.
Support :Gblame --reverse to navigate forwards through history.
Support :Gblame with range to blame subset of current file.
Allow disabling dynamic blame colors with let g:fugitive_dynamic_colors = 0.
:Glog opens quickfix list instead of displaying raw log output.
Cleaner :Glog quickfix list leveraging Vim's new "module" format.
:Glog no longer defaults to current file. Use :0Glog for that.
:0Glog follows file across renames.
:Glog name softly deprecated in favor of :Gclog (named after :cfile).
Provide :Grevert.
:Gdiff renamed to :Gdiffsplit.
:Gdiffsplit always opens one window. Use :Gdiffsplit! for conflicts.
Support git grep --column.
Chdir with git -C rather than :cd for most commands. (Git 1.8.5 required).
Show all stderr hook output on :Gcommit.
Provide core.askPass default for Gpush and friends.
Require bang to :Gwrite from index.
Bug fixes.
Polish. |
fugitive.zip |
2.5 |
2018-11-23 |
7.0 |
Tim Pope |
Support :source and :write on Fugitive URLs.
Support :Gedit +cmd ++opt.
Support :Gedit /absolute/path and ./relative/path.
Support expansion flags, like :Gedit %:h.
Support completion of commits for --fixup=/--squash=.
Support :Gread commit to read commit message.
Adjust :Gbrowse line range for upstream head.
Map <CR> in blobs to jump to blamed commit.
Map p to jump to file in preview window.
Make :Gmove always relative to repository root.
Load Projectionist config from .git/info/projections.json.
Drop instaweb support.
New public function API.
Major robustness and error handling improvements.
Bug fixes. |
fugitive.zip |
2.4 |
2018-07-10 |
7.0 |
Tim Pope |
Split into plugin, autoload, and ftdetect files.
Support mods like :vertical on :Gstatus and :Gedit family.
Provide :Grebase (no --interactive).
Bug fixes. |
fugitive.zip |
2.3 |
2018-05-29 |
7.0 |
Tim Pope |
Support worktrees.
Provide API for extensible :Gbrowse support.
Remove GitHub URL support in favor of rhubarb.vim.
Provide :Gdelete to delete both file and buffer.
Provide :Grename to move relative to file's parent directory.
Split to open file when :Gstatus is only window.
Provide U in :Gstatus to discard changes.
Provide additional :Gstatus commit maps.
Provide d2o and d3o to obtain diff during conflict.
Support :tab Gcommit.
Open :Gcommit tab before current.
Support :Gdiff +cmd.
Support gf in Git file types.
Add flagship.vim statusline indicator.
Use the Neovim terminal emulator for :Git.
Bug fixes. |
fugitive.zip |
2.2 |
2015-01-20 |
7.0 |
Tim Pope |
Provide :Gpush, :Gfetch, :Gmerge, and Gpull.
Use -L to handle :Glog range.
:Gcommit -v opens message in new tab.
API for custom :Gbrowse handlers.
Invoke :Browse if available to open URL.
Colorize hashes in :Gblame buffer.
Set cursorbind and nobuflisted in :Gblame buffers.
:Gblame in blame buffer toggles buffer. |
fugitive.zip |
2.1 |
2014-06-24 |
7.0 |
Tim Pope |
Fix :Gdiff horizontal/vertical disposition. |
fugitive.zip |
2.0 |
2014-06-23 |
7.0 |
Tim Pope |
<C-R><C-G> in :Gstatus recalls cursor line filename.
Map dp to show diff in :Gstatus.
Add ca and cA commit maps to :Gstatus.
Add cc alias for C in :Gstatus.
Disable swapfile in :Gstatus.
Replace :Gstatus cv with cva and cvc.
Add an `S` mapping for vertical splits from :Gstatus.
Close diffs when navigating from :Gstatus.
Enable folding in :Gstatus.
Accept a count with :Gstatus <C-N>/<C-P>.
Allow <C-p> pass through to ctrlp.vim in :Gstatus.
Add . in :Gstatus to prepopulate command line with revision.
Fix :Gstatus dp with external diff enabled.
Force displayCommentPrefix to fix :Gstatus on 1.8.5+.
Support localized `git status`.
Map g? and <F1> to show help in :Gstatus and :Gblame.
Kill relativenumber in blame buffer.
Fix jump to line on reblame.
Return to blamed buffer on q in blame.
Restore blamed window on gq in blame.
Fix :Gblame scrollbind with folds.
Jump from blame to commit focuses relevant diff.
:Gblame: Retain original alternate buffer.
Use - not <CR> for reblame.
Switch :Gblame <CR> to open commit.
Open fold when jumping to commit from blame.
Add maps for resizing blame window.
Conceal file names and line numbers in :Gblame.
Set winfixwidth in :Gblame buffers.
Press <CR> in :Gblame to open commit (reblame is now -).
Better csh support.
Work around "always" color option.
Fix trailing blank line when editing index files.
Use HTTPS for GitHub URLs in README.
:Gdiff split direction based on 'diffopt' and window size.
Focus diff window on :Gdiff.
Restore options when turning off diff mode.
Set bufhidden=delete in historical buffers.
Fix modeline errors in historical buffers.
Change cp to cP.
Add :Git! et al. for loading output into a buffer.
Tab complete Git aliases.
Enter on a +/- diff line jumps to that line.
Better Windows support.
Support core.autocrlf=false on Windows.
Work around slow \\ Windows network path.
Work around .git in 'wildignore'.
Fix garbage during :Gcommit with alternate screen.
Fix garbling on :Gcommit when nothing is staged.
Hack around broken :Gcommit with symlinked .git.
Use y<C-G> to yank the current object's path.
Preserve alternate file in :Gmove.
Support bare repositories that don't end in .git.
Support .git-file repositories (including submodules).
Support symlinked .git if core.worktree is set.
Fix redraw issue after :Gbrowse.
Support GitHub FI in :Gbrowse.
Support implicit GitHub username in remote for :Gbrowse.
Make fugitive commands available in nerdtree buffers.
Make fugitive commands available in command line window.
:Glgrep and :Gllog.
:.Glog jumps to same line in each file.
Map - to go up a directory.
Provide custom 'foldtext'.
Respect $GIT_CEILING_DIRECTORIES.
Look for $GIT_DIR and $GIT_WORK_TREE.
Improve Windows support.
Assorted bug fixes. |
fugitive.zip |
1.2 |
2011-04-29 |
7.0 |
Tim Pope |
Support :Gmove in a directory.
Provide :Gbrowse to open code on GitHub or in git-instaweb.
Provide :Gwq to :quit after :Gwrite.
Provide :Gsdiff to do a horizontal diff.
Map ds in :Gstatus to do a horizontal diff.
Map <C-N> and <C-P> in :Gstatus to cycle between files.
Map `-` on headings in :Gstatus.
Map dp in stage conflict to do the right thing.
Point 'tags' at .git/tags.
Windows fixes. [Michael Geddes]
|
fugitive.zip |
1.1 |
2010-03-21 |
7.0 |
Tim Pope |
Much better windows support ('shellslash' no longer required).
Delete blame buffers when closed.
Pass :Gblame flags along to git-blame.
Fix duplicate "Signed-off-by" lines.
Finish pending commit even if exiting Vim.
Allow double quotes in :Git and :Ggrep arguments.
`D` in :Gstatus shows a diff. |
fugitive.zip |
1.0 |
2010-02-15 |
7.0 |
Tim Pope |
Initial upload |
ip used for rating: 3.239.40.250
|