:heavy_plus_sign: Show a diff using Vim its sign column.
Last updated Jul 6, 2026
2.7k
Stars
113
Forks
13
Issues
+1
Stars/day
Attention Score
95
Topics
Language breakdown
Vim Script 99.5%
Shell 0.5%
โธ Files
click to expand
README

_Signify (or just Sy) uses the sign column to indicate added, modified and removed lines in a file that is managed by a version control system (VCS)._
- Supports git, mercurial, darcs, bazaar, subversion,
- Asynchronous execution of VCS tools for Vim 8.0.902+ and Neovim.
- Preserves signs from other plugins.
- Handles nested repositories controlled by different VCS.
- Provides mappings for navigating hunks ("blocks of changed lines").
- Provides an operator that acts on hunks.
- Preview changes in the current line in a popup window.
- Show all changes in diff mode.
- Alternative workflow: Disable the plugin by default and **toggle it per
- Optional line highlighting.
- Optional skipping of filetypes/filenames.
- Optional stats in the statusline.
- Works out of the box, but allows fine-grained configuration.
- Great documentation and handsome maintainers!
Similar plugin for git: vim-gitgutter_
Installation
The master branch is async-only and thus requires at least Vim 8.0.902. Use the legacy tag for older Vim versions.
Using your favorite plugin manager, e.g. vim-plug:
if has('nvim') || has('patch-8.0.902')
Plug 'mhinz/vim-signify'
else
Plug 'mhinz/vim-signify', { 'tag': 'legacy' }
endif
Configuration for async update
" default updatetime 4000ms is not good for async update
set updatetime=100
Demo

Author and Feedback
If you like this plugin, star it! It's a great way of getting feedback. The same goes for reporting issues or feature requests.
Contact: Twitter
Co-maintainer: @jamessan
๐ More in this category