mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-11 13:03:45 -05:00
105 lines
3.3 KiB
Markdown
105 lines
3.3 KiB
Markdown
## 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][st2gg] plugin for Sublime Text 2.
|
|
|
|
|
|
### 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][pathogen], and then simply copy and paste:
|
|
|
|
```
|
|
cd ~/.vim/bundle
|
|
git clone git://github.com/airblade/vim-gitgutter.git
|
|
```
|
|
|
|
|
|
### 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 `:DisableGitGutter`
|
|
* turn on with `:EnableGitGutter`
|
|
* toggle with `:ToggleGitGutter`.
|
|
|
|
And you can turn line highlighting on and off (defaults to off):
|
|
|
|
* turn on with `:EnableGitGutterLineHighlights`
|
|
* turn off with `:DisableGitGutterLineHighlights`
|
|
* toggle with `:ToggleGitGutterLineHighlights`.
|
|
|
|
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
|
|
|
|
[vim-git-inline-diff][vgid] is implementing the same functionality as this plugin.
|
|
|
|
Also, these may be of interest:
|
|
|
|
* [quickfixsigns_vim][qf] has a large superset of this functionality.
|
|
* [fugitive.vim][fugitive] 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:
|
|
|
|
* [Smash Into Vim I][siv1]
|
|
* [Smash Into Vim II][siv2]
|
|
|
|
You can read reviews at PeepCode and also on my [portfolio][].
|
|
|
|
|
|
### Intellectual Property
|
|
|
|
Copyright Andrew Stewart, AirBlade Software Ltd. Released under the MIT licence.
|
|
|
|
|
|
[st2gg]: https://github.com/jisaacks/GitGutter
|
|
[pathogen]: https://github.com/tpope/vim-pathogen
|
|
[qf]: https://github.com/tomtom/quickfixsigns_vim
|
|
[fugitive]: https://github.com/tpope/vim-fugitive
|
|
[siv1]: https://peepcode.com/products/smash-into-vim-i
|
|
[siv2]: https://peepcode.com/products/smash-into-vim-ii
|
|
[portfolio]: http://airbladesoftware.com/portfolio#vim
|
|
[vgid]: https://github.com/luxflux/vim-git-inline-diff
|