Vaz Allen 7186f8bcad Highlighting customisation tweaks.
Highlight groups for signs:

- renamed highlight groups with `GitGutter` prefix, and following the
  naming style of the builtin groups `DiffAdd`, `DiffChange`, etc.

- using `highlight default link` to set default colours for signs.
  e.g. the plugin defines `GitGutterAddDefault` as green, and default
  (if `g:gitgutter_highlights`) links `GitGutterAdd` to it (which the
  user can customise).

Highlight groups for lines:

- added gitgutter-specific highlight groups for line highlighting
  (`GitGutterAddLine`, etc) so that this highlighting can be customised
  independent of `DiffAdd` et al (which these default link to).

- line highlighting toggling now only changes the linehl attribute.

  The `linehl` attribute is toggled in `s:update_line_highlights`,
  which separates concerns more clearly.  I'm thinking ahead to the
  possibility of the sign text being configurable, and thinking it will
  be DRYer to keep these things separate.  Maybe it's just aesthetic
  though.

Bonus: resolved "eugh" ;)
2013-03-08 11:14:56 +01:00
2013-03-07 15:08:55 +01:00
2013-03-08 11:14:56 +01:00
2013-03-07 15:08:55 +01:00
2013-03-07 11:37:02 +01:00
2013-02-20 10:53:23 +01:00

Vim Git Gutter

A Vim plugin which shows a git diff in the 'gutter' (sign column). It shows whether each line has been added, modified, and where lines have been removed.

This is a port of the Git Gutter plugin for Sublime Text 2.

Screenshot

screenshot

In the screenshot above you can see:

  • Line 15 has been modified.
  • Lines 21-24 are new.
  • A line or lines were removed between lines 25 and 26.

Installation

If you don't have a preferred installation method, I recommend installing pathogen.vim, and then simply copy and paste:

cd ~/.vim/bundle
git clone git://github.com/airblade/vim-gitgutter.git

Or for Vundle users:

Add Bundle 'airblade/vim-gitgutter' to your ~/.vimrc and then:

  • either within Vim: :BundleInstall
  • or in your shell: vim +BundleInstall +qall

Usage

You don't have to do anything: it just works.

If you want vim-gitgutter off by default, add let g:gitgutter_enabled = 0 to your ~/.vimrc.

You can explicitly turn vim-gitgutter off and on:

  • turn off with :GitGutterDisable
  • turn on with :GitGutterEnable
  • toggle with :GitGutterToggle.

And you can turn line highlighting on and off (defaults to off):

  • turn on with :GitGutterLineHighlightsEnable
  • turn off with :GitGutterLineHighlightsDisable
  • toggle with :GitGutterLineHighlightsToggle.

Furthermore you can jump between hunks:

  • jump to next hunk: :GitGutterNextHunk
  • jump to previous hunk: :GitGutterPrevHunk.

You may want to add mappings for these if you use them often.

If you want to define your own highlights, you can turn off vim-gitgutter's with let g:gitgutter_highlights = 0 in your ~/.vimrc.

FAQ

The colours in the sign column are weird.

The syntax highlighting for your sign column is probably set strangely. Either modify your colorscheme or add this to your ~/.vimrc:

highlight clear SignColumn

What happens if I also use another plugin which uses signs (e.g. Syntastic)?

Vim only allows one sign per line. Before adding a sign to a line, vim-gitgutter checks whether a sign has already been added by somebody else. If so it doesn't do anything. In other words vim-gitgutter won't overwrite another plugin's signs. It also won't remove another plugin's signs.

Alternatives

Related:

Vim alternatives:

Other editors:

Also, this may be of interest:

  • fugitive.vim is a full-on Git wrapper. It doesn't show git diffs in the gutter (ha!) but it does a bazillion other git things.

Shameless Plug

If this plugin has helped you, or you'd like to learn more about Vim, why not check out these two screencasts I wrote for PeepCode:

You can read reviews at PeepCode and also on my portfolio.

Intellectual Property

Copyright Andrew Stewart, AirBlade Software Ltd. Released under the MIT licence.

Description
A Vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks.
Readme 2 MiB
Languages
Vim Script 99.6%
Shell 0.4%