Go to file
Marco Hinz 3f9c4e4ea0
Don't retry VCS detection for performance purposes
For each new buffer sy#repo#detect() gets run. That function invokes callbacks
for all VCS from g:signify_vcs_list.

If no callback finds a valid repo, sy#set_signs() is never called and the VCS
type of the newly registered buffer keeps its initial value: "unknown".

The next time Sy gets run in that buffer, Sy will disable itself, so that all
subsequent times it gets run it will never even attempt to get a diff.

If a buffer was added to a repo that was initialized after Sy registered that
buffer, it will remain inactive.

In those cases, :SignifyEnable will purge the cache for the current buffer and
start all over.
2017-01-18 10:50:07 +01:00
autoload Don't retry VCS detection for performance purposes 2017-01-18 10:50:07 +01:00
doc FAQ: The plugin is slow! 2016-10-05 17:59:53 +02:00
pictures README: complete revamp 2015-12-27 23:11:23 +01:00
plugin Remove rather useless :SignifyDebugDiff 2017-01-18 00:14:36 +01:00
.gitignore Help out submodule users by ignoring doc/tags 2016-06-08 12:47:24 +02:00
CONTRIBUTING.md CONTRIBUTING: update 2013-06-06 12:42:30 +02:00
LICENSE Bump license years 2015-04-28 15:59:08 +02:00
README.md README: typo 2016-11-27 16:46:24 +01:00
showcolors.bash Showcolors: proper cleanup 2013-07-03 20:06:26 +02:00

vim-signify


Signify (or just Sy) is a quite unobtrusive plugin. It uses signs to indicate added, modified and removed lines based on data of an underlying version control system.

It's fast, easy to use and well documented.


  • supports git, mercurial, darcs, bazaar, subversion, cvs, rcs, fossil, accurev, perforce, tfs
  • quick jumping between blocks of changed lines ("hunks")
  • apart from signs there is also optional line highlighting
  • preserves signs from other plugins
  • you can toggle the plugin per buffer
  • good documentation
  • skip certain filetypes and filenames
  • depending on your usual workflow you can disable it per default and enable on demand later
  • fully configurable through global variables (options and mappings)

If git is the only version control system you use, I suggest having a look at vim-gitgutter. It provides more git-specific features that would be unfeasible for Sy, since it only implements features that work for all supported VCS.

Installation and Documentation

Use your favorite plugin manager, e.g. using vim-plug:

Plug 'mhinz/vim-signify'

It works without any configuration, but you might want to look into the documentation for further customization:

:h signify

The single most important option by far is g:signify_vcs_list. Please read :h g:signify_vcs_list.

Demo

Example:signify in action

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