Compare commits

..

264 Commits

Author SHA1 Message Date
Tim Pope ff32149a59 Attempt to allow :Gbrowse on HTTP GitHub FI 2012-11-18 21:35:45 -05:00
Tim Pope 003f38c6a4 Escape # in :Glog
Closes #265.
2012-11-04 19:32:13 -05:00
Tim Pope 3f703b6e03 Replace :Gstatus cv with cva and cvc
My rebuttal to #263.
2012-10-22 17:02:30 -04:00
Tim Pope 9afeebf32e Provide failsafe for foldtext filename
Closes #216.
2012-10-21 23:21:12 -04:00
Tim Pope 09743e76a0 Correct foldtext when diff.mnemonic is set 2012-10-21 22:54:59 -04:00
Tim Pope 14958f37e3 Mention OS X browser in FAQ
Closes #255.
2012-10-18 13:34:33 -04:00
Tim Pope 05763df0ed Fix :Gbrowse when argument starts with a digit 2012-10-16 00:18:41 -04:00
Tim Pope f43393dd9a Conceal file names and line numbers in :Gblame 2012-10-09 18:36:54 -04:00
Tim Pope daccfb508f Update :Gblame supported options 2012-10-09 18:36:54 -04:00
Tim Pope cdb7bd9841 Don't show diff in keywordprg output in GUI
It's not very readable without syntax highlighting or pagination, so
leave it off.
2012-10-09 18:36:54 -04:00
Tim Pope 554909ed4b Allow a count to blame resizers
Pass a count to A or C to add that many additional columns, or to D to
remove that many additional columns.
2012-10-09 16:04:41 -04:00
Tim Pope 3463b780df Fix A in :Gblame with unix timestamp 2012-10-09 15:25:40 -04:00
Daniel Hahler 31dead6d80 s:Detect: only add readable files to &tags and doc
Fixes issue #104.
2012-10-02 10:09:53 -04:00
Trent Ogren cff78c3ab4 Pick sane git_dir for :Gedit from :Gstatus window
When using a :Gedit command from the :Gstatus window the git_dir was
being based on the window that was switched into in order to edit the
file. So if Fugitive switched into a window with a file from a different
Git repo (or a file with no Git repo) the :Gedit command could fail or
edit the wrong file.

Instead base the git_dir on the window from which the :Gedit command
originated.
2012-09-21 12:39:35 -04:00
Tim Pope 41383131b8 Support ctrlp.vim in historical buffers 2012-09-08 11:41:32 -04:00
Tim Pope 615f6608f1 Allow <C-p> pass through to ctrlp.vim in :Gstatus
This only works on the first line.  Any more than that, and we'll have
to give up on the whole <C-p> map entirely (which is not off the table).
2012-09-07 01:15:48 -04:00
Tim Pope 8d019de97c Accept a count with :Gstatus <C-N>/<C-P> 2012-09-07 01:14:13 -04:00
Taylor Hedberg b5725c1eec Return to correct window when closing Gblame window
Vim does not guarantee persistent window numbers. Instead, windows are
numbered according to their position on the screen, with the topmost,
leftmost window always having number 1, and the bottommost, rightmost
window always having a number equal to the total number of windows
currently visible. Crucially, this means that, when a window is closed,
windows which come "after" it in the positional order will be
renumbered.

When fugitive's Gblame window is closed, e.g. by pressing `q`, it
attempts to return focus to the window of the blamed buffer. Previously,
the number of the window to return to was computed before closing the
Gblame window, then the Gblame window was closed, then the blamed
buffer's window was focused. However, since windows were often
renumbered as soon as the Gblame window was closed, this would
frequently cause focus to jump to the window *after* the blamed buffer's
window, rather than the intended behavior.

This corrects the issue by jumping to the proper return window prior to
deleting the Gblame buffer, ensuring that the computed window number is
in fact correct at the moment when the focus change occurs.
2012-08-29 13:38:33 -04:00
Tim Pope 381b275bc9 Fix <C-W><C-O> in diff below :Gstatus
I'll admit I can't remember the original purpose of this code.

Closes #66.
2012-08-28 13:25:13 -04:00
Tim Pope f5b50f822b Fix :Gblame width with custom date format
Partially addresses #242.
2012-08-21 20:47:19 -04:00
Tim Pope a0c71a6d4c Fix :Gstatus dd on unmerged path
Closes #240.
2012-08-15 11:22:40 -04:00
Tim Pope 0abe1fb122 Support advice.statusHints = false
Closes #230.
2012-08-01 16:00:15 -04:00
Tim Pope a90cc48c7a Fix creation of files named index
Closes #231.
2012-08-01 10:35:52 -04:00
Tim Pope b0c74e2289 Support localized git status
Closes #228.
2012-07-28 11:54:52 -04:00
Tim Pope 745ccf5066 Centralize filename extraction in :Gstatus
This encapsulates some of the logic that will need to be updated to
solve #228.
2012-07-16 18:10:27 -04:00
Tim Pope d1971558b5 Fix - on :Gstatus headers 2012-07-16 17:42:00 -04:00
Tim Pope 8ba04c2476 Encapsulate :Gstatus section determination logic 2012-07-16 11:16:35 -04:00
Tim Pope ca6d4ca4d1 Don't activate maps without b:git_dir
Closes #227.
2012-07-15 13:33:36 -04:00
Tim Pope 585ca691a3 Revert "Follow symlinks"
This reverts commit 57af9b98cf, which was
pushed by accident.
2012-07-15 13:03:09 -04:00
Tim Pope 5298448e88 Fix :Glog on Windows
Closes #199.
2012-07-11 07:26:42 -04:00
Tim Pope 9ebff45853 Re-enable editing files named index
This is a crude hack.  Watch for edge cases.

Closes #205.
2012-07-08 01:11:12 -04:00
Tim Pope 8fd12ef14f Show diff from :Gstatus interally
When pressing enter on a header in :Gstatus, use :Git! rather than :Git
to show the diff.

Closes #208.
2012-07-08 01:06:33 -04:00
Nicolas Viennot and Sid Nair 57af9b98cf Follow symlinks
Previously, symlinks were not resolved. Thus, symlinks outside a git
directory would have no git dir even if they linked to a file in a git
directory.
2012-07-07 17:30:25 -04:00
Tim Pope 3b278277e0 Add maps for resizing blame window 2012-06-22 19:44:32 -04:00
Tim Pope 49c6be334c Override 'shellslash' for external Windows command
With 'shellslash' set, tempname() returns a filename with forward
slashes, which trips up the type command if we don't translate to
backslashes first.

Fixes half of #212.
2012-06-07 22:05:06 -04:00
Tim Pope 1eb4a9f7e3 Fix erroneous check for //objects
This was particularly detrimental on Windows, where it caused a slow
network lookup.

Closes #210.
2012-06-04 15:16:48 -04:00
Tim Pope 6515bd43ac Support relative core.worktree
This is based on Chen Mulong's implementation in #204, but uses the same
relative path check as a8d450fcfe, for
better Windows support.
2012-05-17 21:42:06 -04:00
Tim Pope a8d450fcfe Support submodules on 1.7.10
In 1.7.10, the git-file switched from using an absolute to a relative
path.  Treat any path starting with "." as relative.  (A more robust
check for a relative path is more complicated than looking for a leading
slash because of Windows.)

Closes #201.
2012-05-15 21:50:13 -04:00
Tim Pope 476fbd0950 Leverage #head() in #statusline() 2012-05-07 11:41:25 -04:00
Georgi Valkov 43741b550d Add fugitive#head() and fugitive#repo().head()
fugitive#head() returns the name of the current branch. If the current
HEAD is detached, fugitive#head() will return the empty string, unless
the optional 'len' argument is given, in which case the hash of the
current HEAD will be truncated to 'len' characters.

This makes should make life easier for people who don't want to use the
default provided by fugitive#statusline()
2012-05-07 11:39:33 -04:00
Daisuke Suzuki 765c921e1f Fix Windows escaping on latest 7.3 patches 2012-05-03 18:30:24 -04:00
Tim Pope 5ceabc6e6a Fix commit editing on Windows
Closes #120.
2012-05-03 18:30:13 -04:00
Tim Pope 1b6c0cbfb6 Improve cmd.exe shell escaping 2012-04-21 10:14:44 -04:00
Jean Jordaan 60fdd95b95 Fix some typos 2012-04-16 21:57:49 -04:00
Tim Pope 15e7672672 Enable folding in :Gstatus 2012-04-16 21:56:49 -04:00
Tim Pope 4fe6e46a0a Fix detection of netrw buffers
How long has this been broken?
2012-04-11 16:41:43 -04:00
Tim Pope 9bfb7857ec Formatting fix 2012-04-10 22:57:56 -04:00
Adam George 75a27559a3 Add an S mapping for vertical splits from :Gstatus 2012-04-08 17:16:38 -04:00
Tim Pope dfba6a17f6 Provide custom 'foldtext'
autocmd FileType git,gitcommit setlocal foldmethod=syntax
2012-04-08 11:00:26 -04:00
guns 859f7eaa70 Fix naked function call 2012-04-07 18:25:49 -04:00
Tim Pope b72bb7b289 Fix - in commit 2012-04-07 16:23:49 -04:00
Tim Pope 9619055cfd Map - to go up a directory 2012-04-07 16:16:41 -04:00
Tim Pope 48daf7ae72 Include leading / in buffer().rev()
Slowly pave the way for relative paths.
2012-04-07 15:42:09 -04:00
Tim Pope b18bb05b91 Further slim down modeline 2012-04-06 10:54:00 -04:00
Richard Russon (flatcap) 96db5642a1 vim modeline confuses slow programmers
Adding 'expandtab' (et) to the modeline prevents whitespace nightmares.
2012-04-06 10:53:34 -04:00
Richard Russon (flatcap) 693d32cdd4 [BUG] wildignore breaks Gwrite
When the file you're editing matches the vim variable
wildignore Gwrite fails.
2012-04-05 23:15:08 -04:00
Tim Pope b978d9f0be :Glgrep and :Gllog 2012-04-05 12:25:24 -04:00
Tim Pope 49e6c2b676 Clean up stray buffer().name() 2012-04-03 07:33:18 -04:00
Tim Pope 39012290b8 Fix incorrect usage of readfile() 2012-04-03 06:52:48 -04:00
Martin Grenfell 89e771ea96 make fugitive commands available in nerdtree bufs
Previously s:Detect() wasnt getting called for nerdtree buffers. I have
added two autocmd events to nerdtree - NERDTreeInit and
NERDTreeNewRoot. These are called when a tree is created, and when the
user changes the root.

Catch these events and call s:Detect() with the tree root path.
2012-04-03 04:12:13 -04:00
Tim Pope 51de95ddee I hate 'autochdir'
Closes #180.
2012-04-01 22:06:13 -04:00
Tim Pope e8e497eb83 Open fold when jumping to commit from blame 2012-04-01 13:17:13 -04:00
Richard Russon (flatcap) e142a27ab8 [BUG] wildignore breaks Gdiff
When the file you're editing matches the vim variable wildignore
Gdiff fails.  This line wasn't being triggered:

autocmd BufReadCmd  fugitive://**//[0-9a-f][0-9a-f]* exe s:BufReadObject()
2012-04-01 10:39:02 -04:00
Tim Pope 3c641a7ef5 Use - not <CR> for reblame
The plan is to ultimately reclaim <CR> for closing the blame, then
jumping to the commit.
2012-03-28 20:35:47 -04:00
Tim Pope c6931a519f Fix :foldopen error 2012-03-28 20:31:40 -04:00
Tim Pope 41ea90cddf Support GitHub FI 2012-03-28 20:27:26 -04:00
Tim Pope 4f7af188fe Fix repo().translate with symlinked git-dir
Closes #178.
2012-03-27 13:43:03 -04:00
Tim Pope 24e9b492fe Fix git-dir detection on Windows
Closes #176.
2012-03-25 22:19:19 -04:00
Tim Pope bc3ffa6b44 Guard against blank .git file
Let's see you break it now.
2012-03-20 08:16:45 -04:00
Tim Pope 8ecc9b9e11 Guard against invalid symlinks in detection
Closes #171.
2012-03-20 08:13:31 -04:00
Tim Pope 165923ebaf Kill old plugin conflict guard 2012-03-18 23:01:26 -04:00
Tim Pope 19d9875186 Refactor and expose detection helpers 2012-03-18 22:53:19 -04:00
Tim Pope dfb10448e2 Cache configured worktree
Note that the repo object holding the cached value is short lived.
2012-03-18 22:22:28 -04:00
Tim Pope c5cd0c96f7 Encapsulate logic for extracting tree from config 2012-03-18 22:12:25 -04:00
Tim Pope 6fc37993fe Fix inadvertent failures to use self 2012-03-18 22:08:58 -04:00
Tim Pope 23d08c0945 Don't assume COMMIT_EDITMSG is in a .git directory 2012-03-18 21:50:40 -04:00
Tim Pope 3c12ec8053 Support symlinked .git if core.worktree is set
Closes #155.
2012-03-18 20:57:36 -04:00
Tim Pope 0b1625a798 Support all git index locations 2012-03-16 22:27:45 -04:00
guns a6982fe7f5 Support more git index locations
Matches:

    .git/index
    .git/index.lock
    .git/modules/submodule/index
    .git/modules/submodule/index.lock
2012-03-16 22:21:25 -04:00
Tim Pope 0949a2e639 Support .git-file repositories
This supports the new submodule structure and closes #139.
2012-03-14 22:02:20 -04:00
Tim Pope 85639a20fb Support bare repositories that don't end in .git
Closes #117 and supports #139.
2012-03-14 20:16:49 -04:00
Tim Pope c67458d189 Decamelize s:ExtractGitDir
Rule of thumb: reserve camel case for imperative functions.
2012-03-14 20:04:44 -04:00
Tim Pope 5b1467af75 Preserve alternate file in :Gmove
Second time's the charm.  I've decided moving is sufficiently different
from copying to justify this.
2012-03-13 20:58:59 -04:00
Tim Pope 168de6fbc5 Don't wipe status buffer
This was to address #105, but the annoyance factor is too high to
justify keeping it.
2012-03-12 18:36:16 -04:00
Tim Pope 14735b470a Use y<C-G> to yank the current object's path
In response to #165.
2012-03-10 17:40:21 -05:00
Tim Pope 22c8ffa2ba Hack around broken :Gcommit with symlinked .git 2012-03-08 11:40:23 -05:00
Tim Pope da2aebe3e6 Use ==# 2012-03-05 07:32:01 -05:00
Tim Pope 5bc125d1d5 Try harder not to choke on broken modeline
Partially addresses #162.
2012-03-05 07:27:35 -05:00
Tim Pope 5be0c6850e Don't abort s:ReplaceCmd on modeline error
Partially addresses #162.
2012-03-05 07:11:13 -05:00
Tim Pope f0cb627a8e Really turn off modelines in commits and :Gstatus
Partially addresses #162.
2012-03-05 06:58:00 -05:00
Tim Pope 5225697d9c Revert "Use --work-tree to fix :cd side effects in :Gcommit"
This reverts commit 903ad4d704, which
broke :Gcommit when invoked from a subdirectory of the repository.
2012-03-03 10:08:00 -05:00
Tim Pope 903ad4d704 Use --work-tree to fix :cd side effects in :Gcommit
Closes #155
2012-03-03 03:30:27 -05:00
Tim Pope dcd79f2adb Map cv to :Gcommit -v 2012-03-01 03:34:30 -05:00
Tim Pope 701304c164 Work around .git in 'wildignore'
Closes #119.
2012-03-01 02:47:13 -05:00
Tim Pope 03e138c349 Attempt to address more Windows slowness (#150) 2012-02-08 13:03:10 -05:00
Taylor Hedberg 64716b9622 :Gblame: Retain original alternate buffer 2012-01-24 12:07:56 -05:00
sgur b4b75ef682 Work around slow \\ Windows network path 2011-12-09 23:06:04 -05:00
Daniel Hahler fc0c98f5c0 Check for +cursorbind feature before using it
`+cursorbind` is not available with Vim on RHEL 6.1 for example.
2011-12-06 12:46:07 -05:00
Tim Pope c72a689f7f Restore 'cursorbind' after diff
Closes #122.
2011-12-03 01:10:08 -05:00
Tim Pope d95e6c61b5 Disable swapfile in :Gstatus 2011-11-27 12:56:44 -05:00
Tim Pope 1b7e4070f5 Fix bare repository support
Closes #117.
2011-10-08 16:09:00 -04:00
Tim Pope ceb18eeceb Fix issue with symlinked tmp dir 2011-10-07 01:33:51 -04:00
Tim Pope 37295383ff Provide fugitive#repo() 2011-10-04 20:25:32 -04:00
Tim Pope 98b7334209 Close old blame windows before new blame 2011-10-04 03:13:46 -04:00
Tim Pope a1bdea305b Fix restore from blame
Options affected by blame are now restored when the blame window is
closed while not focused.
2011-10-04 03:10:04 -04:00
Tim Pope be42215003 Enter on a +/- diff line jumps to that line
This is useful particularly in conjunction with :Gblame.  Press `i` on a
line in a blame to open the commit.  If the diff reveals a new point of
interest, press enter on that line to jump to it in the history, then
:Gblame again.
2011-10-01 17:31:57 -04:00
Tim Pope 8ce49ebea0 Jump from blame to commit focuses relevant diff 2011-10-01 17:31:57 -04:00
Tim Pope 6cf850dd00 Show :Gblame maps in tabular form 2011-10-01 17:31:57 -04:00
Tim Pope e9e48006dd Fix :Gblame scrollbind with folds 2011-10-01 17:31:57 -04:00
Tim Pope c4baefff69 Press i in blame to close then jump to commit 2011-10-01 04:23:27 -04:00
Tim Pope 59ce7a9e19 Restore blamed window on gq in blame 2011-10-01 04:13:09 -04:00
Tim Pope a23dcec3d2 Return to blamed buffer on q in blame 2011-10-01 04:02:29 -04:00
Tim Pope 9169e8c36e Remove space from q map 2011-10-01 03:54:58 -04:00
Tim Pope 88ae099102 Syntax fix 2011-10-01 02:31:53 -04:00
Tim Pope 30038b82a4 Fix jump to line on reblame
Discovered when investigating #112.
2011-10-01 02:26:26 -04:00
Tim Pope 1eeeb41f3f Work around git.vim's broken b:git_dir 2011-09-24 18:31:23 -04:00
Tim Pope 201bdd0eff Fix completion of :Gedit! 2011-09-12 17:02:45 -04:00
Tim Pope c212714cba :Gwrite in a patch to apply it
Closes #106.
2011-09-08 17:13:00 -04:00
Tim Pope 8638d7b059 Clever window size on :Gcommit from :Gstatus 2011-09-05 21:17:19 -04:00
Tim Pope 1ecd40d002 Revert "Partial workaround for symlinked .git"
This reverts commit ea3b4a7315.
b4099e568a handles this more cleanly.
2011-09-02 15:19:06 -04:00
Tim Pope b4099e568a Wipe :Gstatus on closure
References #105
2011-09-02 14:59:30 -04:00
Tim Pope ea3b4a7315 Partial workaround for symlinked .git
Closes #105
2011-09-02 14:56:49 -04:00
Tim Pope 1de030e2d0 Treat . remote as origin in :Gbrowse 2011-08-29 20:56:21 -04:00
Tim Pope ef4bcdb44f Add cc alias for C in :Gstatus 2011-08-29 20:50:05 -04:00
Tim Pope 2bc72cde05 Clarify copyright 2011-08-29 20:49:59 -04:00
Tim Pope 8cd20303ca Escape ! in :Gblame filename 2011-08-25 20:24:01 -04:00
Tim Pope 11951a614c Identify new buffers as "file" 2011-08-25 20:23:47 -04:00
Tim Pope 9dfa357770 :Ge in blank buffer goes to status 2011-08-25 19:08:23 -04:00
Tim Pope 0a24e781b2 Allow exiting vim from q in sole buffer :Gstatus 2011-08-25 19:07:50 -04:00
Tim Pope 821f11176f Add ca and cA commit maps to :Gstatus 2011-08-25 15:45:00 -04:00
Tim Pope 15d2136f5f Kill relativenumber in blame buffer
Closes #102
2011-08-25 14:51:48 -04:00
Tim Pope 5f5c8da61f Fix several editing maps 2011-08-21 15:53:12 -04:00
Tim Pope 7a33e738fa Tab complete Git aliases 2011-08-21 13:55:04 -04:00
Tim Pope a09263f9d0 Fix jump after dp on untracked file 2011-08-21 13:45:21 -04:00
Tim Pope c2569c5de4 Support space and comma paths with tags 2011-08-19 21:15:15 -04:00
Tim Pope e674a7e2f3 Map dp to show diff in :Gstatus
Closes #101
2011-08-19 18:21:58 -04:00
Tim Pope b8b5272577 Use long options in :Gstatus help 2011-08-19 18:20:43 -04:00
Tim Pope 7005789427 Add :Git! et al. for loading output into a buffer 2011-08-19 15:01:56 -04:00
Tim Pope dd52642d13 Document :Gstatus maps in tabular form 2011-08-19 15:01:56 -04:00
Tim Pope 2aae91c3ed Map R to reload :Gstatus 2011-08-19 14:30:40 -04:00
Tim Pope 0d3419ecc4 Always map q in status 2011-08-19 14:08:56 -04:00
Tim Pope b3262c28d6 No preview window business for :Gread 2011-08-19 03:04:50 -04:00
Tim Pope 4a20d8802e Handle return to temp files more gracefully 2011-08-19 03:04:50 -04:00
Tim Pope f21ebfb2ee Make <C-R><C-G> a noop on irrelevant :Gstatus line 2011-08-19 03:04:50 -04:00
Tim Pope 69711ec322 Fix typo 2011-08-19 03:04:50 -04:00
Tim Pope 8993abb9f1 Set bufhidden=delete in historical buffers 2011-08-15 23:17:42 -04:00
Tim Pope 6c0649ed9b Fix redraw issue after :Gbrowse 2011-08-12 17:50:58 -04:00
Tim Pope 7991e832a3 Prioritize our own tags 2011-08-11 11:03:18 -04:00
Tim Pope 8548a9c621 <C-R><C-G> in Gstatus recalls cursor line filename 2011-08-09 15:16:17 -04:00
Tim Pope 78b405fd52 Support core.autocrlf=false on Windows
Fixes #99.
2011-08-09 11:18:50 -04:00
Tim Pope a0f5c0445e Restore options when turning off diff mode 2011-08-07 19:53:03 -04:00
Tim Pope 299a037564 Rename confusing w:fugitive_restore 2011-08-07 19:51:45 -04:00
Tim Pope 8e9fa7a807 Consolidate duplication in help and README 2011-08-07 18:53:59 -04:00
Tim Pope 23c7599ab3 Document mappings in :Gblame
Also document q in :Gstatus.
2011-08-07 00:09:53 -04:00
Tim Pope c10d7cc5f8 Reference homepage not email 2011-08-06 16:55:57 -04:00
Tim Pope dba7bad836 Add instructions for viewing help 2011-07-25 18:59:12 -04:00
Tim Pope bca6ca0237 Use HTTPS for GitHub URLs in README 2011-07-25 17:42:07 -04:00
Tim Pope faaf459388 Expand FAQ 2011-07-25 17:39:40 -04:00
Tim Pope a452b5ee7e Add a note about compatibility bugs 2011-07-25 17:39:40 -04:00
Tim Pope 9104cceedc Add installation instructions 2011-07-25 17:39:40 -04:00
Tim Pope 100893dd33 Add license 2011-07-25 17:39:40 -04:00
Tim Pope 56630b88a7 Add contribution guidelines 2011-07-25 17:39:40 -04:00
Tim Pope 3f77ad8865 Tweak self-promotion wording 2011-07-25 17:39:40 -04:00
Tim Pope 4453370768 Fix trailing blank line when editing index files
I can't consistently reproduce this, but a binary write is the logical
thing to do in this case, and seems to work.
2011-06-13 22:38:13 -04:00
Tim Pope a38f25f78b Close diffs when navigating from :Gstatus 2011-06-12 23:10:06 -04:00
Tim Pope 50e7887498 Link to vimcasts 2011-06-02 21:40:47 -04:00
Tim Pope a86731afa9 Further self promotion 2011-06-02 21:40:47 -04:00
Tim Pope 2fb2d4e199 Move self-promotion to bottom of README 2011-06-02 21:40:47 -04:00
Tim Pope 35d6717d6a Work around "always" color option 2011-05-27 14:51:18 -04:00
Tim Pope c872a54675 Fix :Gcommit % 2011-05-10 08:31:41 -04:00
Tim Pope b089a2b7ce Fix :Gcommit on csh and Windows 2011-05-09 20:02:30 -04:00
Tim Pope 216c85afe0 Fix history browsing on csh and Windows 2011-05-09 13:31:19 -04:00
Tim Pope b75a131805 Drop noautowrite rendered irrelevant by system() 2011-05-09 13:07:39 -04:00
Tim Pope aaf5b34366 Fix garbling on :Gcommit when nothing is staged
Fixes #68.
2011-05-09 08:37:24 -04:00
Tim Pope 05000b1872 Fix garbage during :Gcommit with alternate screen
When running Vim in a terminal with an alternate screen buffer, :Gcommit
trashes the screen in a way that requires a redraw to fix.  Circumvent
this by using system() rather than `silent !`.  Fixes #68.
2011-05-09 01:27:15 -04:00
Tim Pope f112f9b830 fugitive.vim 1.2 2011-04-28 23:36:12 -04:00
Tim Pope 0184570176 Revert "Preserve alternate file in :Gmove"
This reverts commit 68b3f3b3d6.  Since
:saveas changes the alternate file, :Gmove should too.
2011-04-28 21:23:47 -04:00
Tim Pope 5e25040a97 Support "(modified content, untracked content)" 2011-04-26 08:44:49 -04:00
Tim Pope bb191c1939 Really work around Vim parser idiosyncrasy 2011-04-26 08:35:02 -04:00
Tim Pope 4a5f1df129 Fix closing of status window in :Gcommit 2011-04-25 15:17:19 -04:00
Tim Pope 081832380c Work around Vim parser idiosyncrasy 2011-04-25 15:14:55 -04:00
Tim Pope b11669a2eb Perform automatic :diffupdate after conflict dp 2011-04-25 14:32:42 -04:00
Tim Pope aebbbd335e Map dp in stage conflict to do the right thing 2011-04-25 11:50:19 -04:00
Tim Pope 3366704c8f Enable - on headings in :Gstatus 2011-04-23 22:15:28 -04:00
Tim Pope a71120ca8f Cope with new "Changes not staged" heading 2011-04-23 22:06:30 -04:00
Tim Pope 68b3f3b3d6 Preserve alternate file in :Gmove 2011-04-22 13:06:27 -04:00
Tim Pope 3ad9b0d9fa Don't clobber alternate file when committing 2011-04-22 12:59:03 -04:00
Tim Pope e047558bee Support :Gcommit on older Git versions 2011-04-19 18:24:33 -04:00
Daniel Hahler 4b69204679 Handle non-readable .git dirs.
This can happen when a normal user edits/views some files in /etc, which
is maintained using git/etckeeper, and /etc/.git is only readable by
root.
2011-04-18 03:27:28 -04:00
Tim Pope 3026076ab5 Simplify csh special cases 2011-04-04 23:15:19 -04:00
Alexander Kahn 762bfa7979 Use https for GitHub URL 2011-03-08 05:23:45 +08:00
Tim Pope 57831bb5c1 Add a FAQ 2011-03-06 17:51:05 -05:00
Tim Pope 2e4c9236d6 Implement :Gwq 2011-02-27 14:35:08 -05:00
Tim Pope 3933bfdc57 Prefer ds to dh for horizontal diff map 2011-02-27 13:15:10 -05:00
Tim Pope fe7f04ebdf Document :Gsdiff and :Gvdiff 2011-02-27 13:15:10 -05:00
Tim Pope 2c0574594d Cease supporting :Gread! 2011-02-27 13:15:09 -05:00
Tim Pope 389efdcf14 Open current branch commits on :Gbrowse HEAD 2011-02-26 20:55:04 -05:00
Tim Pope 1e6d7c8a40 Fix use of throw 2011-02-26 20:12:34 -05:00
Tim Pope d5f8446158 Let :Gdiff :/ diff against the work tree version 2011-02-26 18:55:47 -05:00
Tim Pope 383b2a43df Handle arbitrary :Gbrowse revision 2011-02-26 17:59:15 -05:00
Tim Pope 95311ab2d9 Ignore rev-parse warnings 2011-02-26 13:45:24 -05:00
Tim Pope ca4e18c81f Allow -/ and :/ to refer to current work tree file 2011-02-26 12:39:19 -05:00
Tim Pope 1eeff6c349 :Gbrowse takes remote tracking branch into account 2011-02-24 16:31:50 -05:00
Tim Pope 9e05d7ee03 Allow :Gbrowse @git://... 2011-02-24 15:57:00 -05:00
Daniel Hahler 55fac5dd74 Fix typo: "flie" => "file" 2011-02-23 00:14:18 +08:00
Tim Pope d6615891c2 Provide :Gbrowse to open code in web browser 2011-02-21 17:54:23 -05:00
Tim Pope af9d44f91b Add filetype specific tags 2011-02-07 15:04:28 -05:00
Michael Geddes 156123520b Handle win32 change in behaviour of fnamemodify in 7.3
Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2011-01-09 17:40:37 -05:00
Tim Pope 33ea0aa4e7 Support submodules in :Gstatus 2011-01-08 16:52:40 -05:00
Tim Pope 9bbea8a2a1 Work around Vim parser idiosyncrasy 2011-01-04 15:04:47 -05:00
Tim Pope 882597d17e Fix trailing slash issues 2011-01-04 14:59:59 -05:00
Tim Pope 64ead8ea1c Don't overwrite paste buffer in :Gread 2010-12-27 23:50:32 -05:00
Tim Pope ab35c2d9ab Allow :Gmove in a directory 2010-12-27 23:27:03 -05:00
Tim Pope affce710e2 Mitigate conflict with DirDiff plugin
This plugin tries to be helpful about disabling diff mode when a diff
window closes, which was confusing DirDiff. We can mitigate that but
only disabling diff mode when b:git_dir matches.
2010-11-13 20:26:53 -05:00
Tim Pope a5e9b2e93e Fix blind copy/paste 2010-11-13 20:15:53 -05:00
Tim Pope 22a832f958 Fix focus anomaly when closing a split
This is seemingly the cause of an incompatibility with the DirDiff
plugin.
2010-11-13 20:04:34 -05:00
Tim Pope e954d364f5 Rename :Ghdiff to :Gsdiff 2010-11-05 19:45:08 -04:00
Tim Pope 0b4e32180b Fix restoration of :lcd after :Gblame
The restore of :lcd was happening after the split, meaning it was taking
effect in the wrong window.
2010-11-05 18:17:26 -04:00
Tim Pope b3f38c4886 Add :Gvdiff and :Ghdiff aliases
I haven't decided if this will become the preferred interface or not.
2010-10-24 17:52:59 -04:00
Tim Pope 6ba88784a2 Add :Gvdiff alias for :Gdiff 2010-10-24 17:52:24 -04:00
Tim Pope e64870df9c Fix error after empty commit message 2010-10-24 13:40:07 -04:00
Tim Pope de602e3676 Remove debugging statement 2010-10-24 13:39:58 -04:00
Tim Pope 119fd9e1ad <C-N> and <C-P> in :Gstatus cycle between files 2010-09-15 23:24:05 -04:00
Tim Pope 24efca8f4f Fix :Gcommit with noisy pre-commit hook 2010-09-09 11:17:45 -04:00
Tim Pope 9d02bf0868 :Gwrite! calls git add --force 2010-08-21 22:52:45 -04:00
Tim Pope 45fe471b44 Attempt to address GitHub issue #16 2010-08-18 22:20:28 -04:00
Tim Pope a8bd148683 Rename fugitive#buffer().name() to spec()
In rails.vim, path() and name() have the opposite (and dare I say more
intuitive) semantic of that found in fugitive.vim.  An outright switch
would be a little violent, so for now, rename name() to spec() (as in
"file spec").
2010-08-04 09:29:22 -04:00
Tim Pope ea89d6ec12 FileType does not have <amatch> as path 2010-08-04 09:29:22 -04:00
Tim Pope 6ea8f2a2ae Update email 2010-08-04 09:29:22 -04:00
Tim Pope 15282dde17 Tighten check of 'tags' for duplicate 2010-08-03 09:22:27 -04:00
Tim Pope bdab318cc6 Fix setting of 'tags' 2010-08-02 16:52:39 -04:00
Tim Pope ea588a104c Point 'tags' at .git/tags 2010-07-28 14:45:48 -04:00
Tim Pope 2b9faa8c7f Press dh in :Gstatus to do a horizontal diff 2010-07-28 09:14:25 -04:00
Tim Pope 562ab96b2f Whitespace fix 2010-07-26 11:22:52 -04:00
Tim Pope a1cc7f3fbd Document :Gdiff! 2010-07-25 21:53:12 -04:00
Vincent Driessen a8109a541d Ignore tags file that Vim generates. 2010-07-19 07:44:53 +08:00
Michael Geddes 794c21484d Expose config settings and user signature.
Adds config() and user() to the fugitive#buffer() interface.

Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2010-06-28 14:39:21 -04:00
Tim Pope 7390538db0 Jump to horizontal diff on "index ..." lines 2010-06-28 11:50:44 -04:00
Tim Pope 559425cafa Replace "Use" with clearer "Press" 2010-06-25 21:30:15 -04:00
Tim Pope 8fcc5cb349 Fix :Gblame with csh 2010-06-08 11:08:05 -04:00
Michael Geddes 3121f01f59 Allow applying from git diffs to work under win32.
The introduction of using 'chcp' in the git.cmd wrapper was causing the
piped in values to be gobbled by the chcp in the call to update-index.

Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2010-06-02 23:44:42 -04:00
Tim Pope ffcc12de5f Fix endif error 2010-06-02 23:43:33 -04:00
Tim Pope 6c44c4795e Only :diffoff in 'diff' buffers 2010-05-25 16:48:34 -04:00
Tim Pope 27e2212ac0 Fix indent 2010-05-25 16:32:09 -04:00
Tim Pope 2ed441fde7 Use window not buffer variable for window restore 2010-05-25 15:34:53 -04:00
Tim Pope 66812106e8 Add missing clear of augroup 2010-05-25 15:32:35 -04:00
Tim Pope 24c5a45431 Disable diff more more aggressively 2010-04-14 11:05:53 -04:00
Tim Pope 1f0bc8cff9 :Gdiff! splits horizontally 2010-04-14 10:49:21 -04:00
Tim Pope ccfc60e550 fugitive.vim 1.1 2010-03-21 17:18:43 -04:00
Tim Pope 57393e7956 D in :Gstatus not on a file invokes :Git diff 2010-03-19 21:48:41 -04:00
Tim Pope 4975e76935 D in :Gstatus invokes :Gdiff 2010-03-19 21:23:41 -04:00
Tim Pope e3e31ce9d7 Fix error in :Gmove 2010-03-19 21:06:08 -04:00
Tim Pope 56b8ad786b Allow double quotes in :Git and :Ggrep arguments
:Git and :Ggrep were defined with the -bar flag, which enables chaining
(`:Ggrep foo | copen`) but also comments (`:Ggrep foo " find foo).  The
former is useful but the latter prevents one from using double quotes
with commands.  Instead, let's disable -bar and fake it in the
implementation.

:Git implements chaining in a way that's hopefully the same as the way
Vim itself chains.  :Ggrep is a little different; it only chains after a
quote or a space so that `:Ggrep -e 'foo|bar'|copen` works as one would
expect.
2010-03-19 19:59:08 -04:00
Tim Pope 6b55a997a9 Finish pending commit even if exiting Vim 2010-03-11 22:15:35 -05:00
Tim Pope b812cb3bcd Skip duplicate "Signed-off-by" [Wincent Colaiuta] 2010-03-10 19:44:38 -05:00
Tim Pope 13fd856db9 Strip .exe from completed Git commands 2010-03-10 19:37:49 -05:00
Tim Pope 1548f141e0 Fix restoring of $GIT_INDEX_FILE 2010-03-09 19:13:28 -05:00
Tim Pope f05eb566e6 Use forward slashes in tab complete on Windows 2010-03-09 19:03:44 -05:00
Tim Pope 43290adc85 Fix :Gblame on Windows 2010-03-09 08:43:57 -05:00
Tim Pope 5f64bb35c9 Leave pager enabled on win32 git invocation 2010-03-08 22:57:18 -05:00
Tim Pope f41e5c9679 Attempt to support 'noshellslash' on Windows 2010-03-08 22:51:10 -05:00
Tim Pope 9c86a7d379 Pass :Gblame flags along to git-blame 2010-03-05 22:28:53 -05:00
Tim Pope 05c0efacab Add a README 2010-02-24 22:48:40 -05:00
Tim Pope 0c99745853 Delete blame buffers when closed 2010-02-16 09:28:00 -05:00
4 changed files with 1491 additions and 365 deletions
+1
View File
@@ -0,0 +1 @@
/doc/tags
+150
View File
@@ -0,0 +1,150 @@
fugitive.vim
============
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 reblame the file as it stood in that
commit, or `o` to open that commit 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.
Screencasts
-----------
* [A complement to command line git](http://vimcasts.org/e/31)
* [Working with the git index](http://vimcasts.org/e/32)
* [Resolving merge conflicts with vimdiff](http://vimcasts.org/e/33)
* [Browsing the git object database](http://vimcasts.org/e/34)
* [Exploring the history of a git repository](http://vimcasts.org/e/35)
Installation
------------
If you don't have a preferred installation method, I recommend
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
then simply copy and paste:
cd ~/.vim/bundle
git clone git://github.com/tpope/vim-fugitive.git
Once help tags have been generated, you can view the manual with
`:help fugitive`.
If your Vim version is below 7.2, I recommend also installing
[vim-git](https://github.com/tpope/vim-git) for syntax highlighting and
other Git niceties.
FAQ
---
> I installed the plugin and started Vim. Why don't any of the commands
> exist?
Fugitive cares about the current file, not the current working
directory. Edit a file from the repository.
> I opened a new tab. Why don't any of the commands exist?
Fugitive cares about the current file, not the current working
directory. Edit a file from the repository.
> Why is `:Gbrowse` not using the right browser?
`:Gbrowse` delegates to `git web--browse`, which is less than perfect
when it comes to finding the right browser. You can tell it the correct
browser to use with `git config --global web.browser ...`. On OS X, for
example, you might want to set this to `open`. See `git web--browse --help`
for details.
> Here's a patch that automatically opens the quickfix window after
> `:Ggrep`.
This is a great example of why I recommend asking before patching.
There are valid arguments to be made both for and against automatically
opening the quickfix window. Whenever I have to make an arbitrary
decision like this, I ask what Vim would do. And Vim does not open a
quickfix window after `:grep`.
Luckily, it's easy to implement the desired behavior without changing
fugitive.vim. The following autocommand will cause the quickfix window
to open after any grep invocation:
autocmd QuickFixCmdPost *grep* cwindow
Contributing
------------
Before reporting a bug, you should try stripping down your Vim
configuration and removing other plugins. The sad nature of VimScript
is that it is fraught with incompatibilities waiting to happen. I'm
happy to work around them where I can, but it's up to you to isolate
the conflict.
If your [commit message sucks](http://stopwritingramblingcommitmessages.com/),
I'm not going to accept your pull request. I've explained very politely
dozens of times that
[my general guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
are absolute rules on my own repositories, so I may lack the energy to
explain it to you yet another time. And please, if I ask you to change
something, `git commit --amend`.
Beyond that, don't be shy about asking before patching. What takes you
hours might take me minutes simply because I have both domain knowledge
and a perverse knowledge of VimScript so vast that many would consider
it a symptom of mental illness. On the flip side, some ideas I'll
reject no matter how good the implementation is. "Send a patch" is an
edge case answer in my book.
Self-Promotion
--------------
Like fugitive.vim? Follow the repository on
[GitHub](https://github.com/tpope/vim-fugitive) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=2975). And if
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and
[GitHub](https://github.com/tpope).
License
-------
Copyright (c) Tim Pope. Distributed under the same terms as Vim itself.
See `:help license`.
+133 -37
View File
@@ -1,38 +1,14 @@
*fugitive.txt* A Git wrapper so awesome, it should be illegal *fugitive.txt* A Git wrapper so awesome, it should be illegal
Author: Tim Pope <vimNOSPAM@tpope.info> *fugitive-author* Author: Tim Pope <http://tpo.pe/>
License: Same terms as Vim itself (see |license|) License: Same terms as Vim itself (see |license|)
This plugin is only available if 'compatible' is not set. This plugin is only available if 'compatible' is not set.
INTRODUCTION *fugitive* INTRODUCTION *fugitive*
Install in ~/.vim, or in ~\vimfiles if you're on Windows and feeling lucky. Whenever you edit a file from a Git repository, a set of commands is defined
Vim 7.2 is recommended as it ships with syntax highlighting for many Git file that serve as a gateway to Git.
types.
If you're in a hurry to get started, here are some things to try:
In any file in your repository, run |:Gedit| HEAD. Press <CR> to jump to the
current branch. Press <CR> again to jump to the top most commit. Keep using
<CR> to explore parent commits, trees, and blobs. Use C in a tree or blob to
get back to the commit.
Edit a file in the work tree and make some changes. Use |:Gdiff| to open up
the indexed version. Use |do| and |dp| on various hunks to bring the files in
sync, or use |:Gread| to pull in all changes. Write the indexed version to
stage the file.
Run |:Gstatus| to check your repository's status. Use "-" to stage and reset
files and "p" to add/reset --patch them. Invoke |:Gcommit| to commit your
changes.
Run |:Gblame| in a work tree file to see a blame in a vertical split. Press
<CR> on any line to reopen and reblame that file as it stood in that commit.
Press o or O on any line to inspect that commit in a split or a tab.
Run |:Ggrep| to search the work tree or history. Run |:Gmove| to rename a
file. Run |:Gremove| to delete a file.
COMMANDS *fugitive-commands* COMMANDS *fugitive-commands*
@@ -43,6 +19,10 @@ that are part of Git repositories).
:Git [args] Run an arbitrary git command. Similar to :!git [args] :Git [args] Run an arbitrary git command. Similar to :!git [args]
but chdir to the repository tree first. but chdir to the repository tree first.
*fugitive-:Git!*
:Git! [args] Like |:Git|, but capture the output into a temp file,
and edit that temp file.
*fugitive-:Gcd* *fugitive-:Gcd*
:Gcd [directory] |:cd| relative to the repository. :Gcd [directory] |:cd| relative to the repository.
@@ -51,9 +31,31 @@ that are part of Git repositories).
*fugitive-:Gstatus* *fugitive-:Gstatus*
:Gstatus Bring up the output of git-status in the preview :Gstatus Bring up the output of git-status in the preview
window. Press - to stage or unstage the file on the window. The following maps, which work on the cursor
cursor line. Press p to do so on a per hunk basis line file where sensible, are provided:
(--patch). Press C to invoke |:Gcommit|.
<C-N> next file
<C-P> previous file
<CR> |:Gedit|
- |:Git| add
- |:Git| reset (staged files)
cA |:Gcommit| --amend --reuse-message=HEAD
ca |:Gcommit| --amend
cc |:Gcommit|
cva |:Gcommit| --amend --verbose
cvc |:Gcommit| --verbose
D |:Gdiff|
ds |:Gsdiff|
dp |:Git!| diff (p for patch; use :Gw to apply)
dp |:Git| add --intent-to-add (untracked files)
dv |:Gvdiff|
O |:Gtabedit|
o |:Gsplit|
p |:Git| add --patch
p |:Git| reset --patch (staged files)
q close status
R reload status
S |:Gvsplit|
*fugitive-:Gcommit* *fugitive-:Gcommit*
:Gcommit [args] A wrapper around git-commit. If there is nothing :Gcommit [args] A wrapper around git-commit. If there is nothing
@@ -70,12 +72,20 @@ that are part of Git repositories).
*fugitive-:Ggrep* *fugitive-:Ggrep*
:Ggrep [args] |:grep| with git-grep as 'grepprg'. :Ggrep [args] |:grep| with git-grep as 'grepprg'.
*fugitive-:Glgrep*
:Glgrep [args] |:lgrep| with git-grep as 'grepprg'.
*fugitive-:Glog* *fugitive-:Glog*
:Glog [args] Load all previous revisions of the current file into :Glog [args] Load all previous revisions of the current file into
the quickfix list. Additional git-log arguments can the quickfix list. Additional git-log arguments can
be given (for example, --reverse). If "--" appears as be given (for example, --reverse). If "--" appears as
an argument, no file specific filtering is done, and an argument, no file specific filtering is done, and
commits are loaded into the quickfix list. previous commits rather than previous file revisions
are loaded.
*fugitive-:Gllog*
:Gllog [args] Like |:Glog|, but use the location list instead of the
quickfix list.
*fugitive-:Gedit* *fugitive-:Ge* *fugitive-:Gedit* *fugitive-:Ge*
:Gedit [revision] |:edit| a |fugitive-revision|. :Gedit [revision] |:edit| a |fugitive-revision|.
@@ -87,10 +97,15 @@ that are part of Git repositories).
:Gvsplit [revision] |:vsplit| a |fugitive-revision|. :Gvsplit [revision] |:vsplit| a |fugitive-revision|.
*fugitive-:Gtabedit* *fugitive-:Gtabedit*
:Gtabedit [revision] |:tabedit| a |fugitive-revision| :Gtabedit [revision] |:tabedit| a |fugitive-revision|.
*fugitive-:Gpedit* *fugitive-:Gpedit*
:Gpedit [revision] |:pedit| a |fugitive-revision| :Gpedit [revision] |:pedit| a |fugitive-revision|.
:Gsplit! [args] *fugitive-:Gsplit!* *fugitive-:Gvsplit!*
:Gvsplit! [args] *fugitive-:Gtabedit!* *fugitive-:Gpedit!*
:Gtabedit! [args] Like |:Git!|, but open the resulting temp file in a
:Gpedit! [args] split, tab, or preview window.
*fugitive-:Gread* *fugitive-:Gread*
:Gread [revision] Empty the buffer and |:read| a |fugitive-revision|. :Gread [revision] Empty the buffer and |:read| a |fugitive-revision|.
@@ -102,7 +117,10 @@ that are part of Git repositories).
|:read| in a |fugitive-revision| after {range}. |:read| in a |fugitive-revision| after {range}.
*fugitive-:Gread!* *fugitive-:Gread!*
:Gread! [revision] Deprecated synonym for |:Gread|. :Gread! [args] Empty the buffer and |:read| the output of a Git
command. For example, :Gread! show HEAD:%.
:{range}Gread! [args] |:read| the output of a Git command after {range}.
*fugitive-:Gwrite* *fugitive-:Gwrite*
:Gwrite Write to the current file's path and stage the results. :Gwrite Write to the current file's path and stage the results.
@@ -117,6 +135,13 @@ that are part of Git repositories).
:0:foo.txt or even :0 to write to just that stage in :0:foo.txt or even :0 to write to just that stage in
the index. the index.
*fugitive-:Gwq*
:Gwq [path] Like |:Gwrite| followed by |:quit| if the write
succeeded.
:Gwq! [path] Like |:Gwrite|! followed by |:quit|! if the write
succeeded.
*fugitive-:Gdiff* *fugitive-:Gdiff*
:Gdiff [revision] Perform a |vimdiff| against the current file in the :Gdiff [revision] Perform a |vimdiff| against the current file in the
given revision. With no argument, the version in the given revision. With no argument, the version in the
@@ -126,6 +151,12 @@ that are part of Git repositories).
to the right. Use |do| and |dp| and write to the to the right. Use |do| and |dp| and write to the
index file to simulate "git add --patch". index file to simulate "git add --patch".
*fugitive-:Gsdiff*
:Gsdiff [revision] Like |:Gdiff|, but split horizontally.
*fugitive-:Gvdiff*
:Gvdiff [revision] Identical to |:Gdiff|. For symmetry with |:Gsdiff|.
*fugitive-:Gmove* *fugitive-:Gmove*
:Gmove {destination} Wrapper around git-mv that renames the buffer :Gmove {destination} Wrapper around git-mv that renames the buffer
afterward. The destination is relative to the current afterward. The destination is relative to the current
@@ -139,14 +170,66 @@ that are part of Git repositories).
buffer. buffer.
*fugitive-:Gblame* *fugitive-:Gblame*
:Gblame Run git-blame on the file and open the results in a :Gblame [flags] Run git-blame on the file and open the results in a
scroll bound vertical split. Press enter on a line to scroll bound vertical split. Press enter on a line to
reblame the file as it was in that commit. reblame the file as it was in that commit. You can
give any of ltfnsewMC as flags and they will be passed
along to git-blame. The following maps, which work on
the cursor line commit where sensible, are provided:
:[range]Gblame Run git-blame on the given range. A resize to end of author column
C resize to end of commit column
D resize to end of date/time column
q close blame and return to blamed window
gq q, then |:Gedit| to return to work tree version
i q, then open commit
o open commit in horizontal split
O open commit in new tab
- reblame at commit
~ reblame at [count]th first grandparent
P reblame at [count]th parent (like HEAD^[count])
:[range]Gblame [flags] Run git-blame on the given range.
*fugitive-:Gbrowse*
:[range]Gbrowse If the remote for the current branch is on GitHub,
open the current file, blob, tree, commit, or tag
(with git-web--browse) on GitHub. Otherwise, open the
current file, blob, tree, commit, or tag in
git-instaweb (if you have issues, verify you can run
"git instaweb" from a terminal). If a range is given,
it is appropriately appended to the URL as an anchor.
To use with GitHub FI, point g:fugitive_github_domains
at a list of domains:
>
let g:fugitive_github_domains = ['git.example.com']
~
:[range]Gbrowse! Like :Gbrowse, but put the URL on the clipboard rather
than opening it.
:[range]Gbrowse {revision}
Like :Gbrowse, but for a given |fugitive-revision|. A
useful value here is -, which ties the URL to the
latest commit rather than a volatile branch.
:[range]Gbrowse [...]@{remote}
Force using the given remote rather than the remote
for the current branch. The remote is used to
determine which GitHub repository to link to.
MAPPINGS *fugitive-mappings* MAPPINGS *fugitive-mappings*
These maps are available everywhere.
*fugitive-c_CTRL-R_CTRL-G*
<C-R><C-G> On the command line, recall the path to the current
object (that is, a representation of the object
recognized by |:Gedit|).
*fugitive-y_CTRL-G*
["x]y<C-G> Yank the commit SHA and path to the current object.
These maps are available in Git objects. These maps are available in Git objects.
*fugitive-<CR>* *fugitive-<CR>*
@@ -155,9 +238,16 @@ These maps are available in Git objects.
*fugitive-o* *fugitive-o*
o Jump to the revision under the cursor in a new split. o Jump to the revision under the cursor in a new split.
*fugitive-S*
S Jump to the revision under the cursor in a new
vertical split.
*fugitive-O* *fugitive-O*
O Jump to the revision under the cursor in a new tab. O Jump to the revision under the cursor in a new tab.
*fugitive--*
- Go to the tree containing the current tree or blob.
*fugitive-~* *fugitive-~*
~ Go to the current file in the [count]th first ~ Go to the current file in the [count]th first
ancestor. ancestor.
@@ -208,6 +298,12 @@ a statusline, this one matches the default when 'ruler' is set:
> >
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
< <
*fugitive#head(...)*
Use fugitive#head() to return the name of the current branch. If the current
HEAD is detached, fugitive#head() will return the empty string, unless the
optional argument is given, in which case the hash of the current commit will
be truncated to the given number of characters.
ABOUT *fugitive-about* ABOUT *fugitive-about*
Grab the latest version or report a bug on GitHub: Grab the latest version or report a bug on GitHub:
+1159 -280
View File
File diff suppressed because it is too large Load Diff