vim-signify/README.md

156 lines
4.5 KiB
Markdown
Raw Normal View History

2013-03-05 14:07:37 -05:00
# vim-signify
2013-03-06 17:40:57 -05:00
Or just: sy
2013-03-10 06:29:19 -04:00
Sy shows all added, deleted and modified lines since the last commit via Vim its
sign column. It supports several version control systems.
2013-03-05 18:30:30 -05:00
2013-03-05 14:07:37 -05:00
It's fast, highly configurable and well documented.
Features:
2013-03-11 13:49:17 -04:00
- supports git, mercurial, darcs, bazaar, subversion, cvs
2013-03-12 10:05:09 -04:00
- quick jumping between changed lines
2013-03-05 14:12:24 -05:00
- apart from signs there is also optional line highlighting
2013-03-12 10:05:09 -04:00
- fully configurable through global variables (options and mappings)
2013-03-07 06:56:25 -05:00
- optional preserving of signs from other plugins
- you can toggle the plugin per buffer
2013-03-07 07:58:54 -05:00
- exception lists for filetypes and filenames
2013-03-05 14:07:37 -05:00
- good documentation
2013-03-05 14:12:24 -05:00
- quick developer response! :-)
2013-03-05 14:07:37 -05:00
2013-03-07 07:29:54 -05:00
![Example:signify in action](https://github.com/mhinz/vim-signify/raw/master/signify.png)
2013-03-05 14:07:37 -05:00
Limits exist only in your mind! Vim on!
2013-03-12 10:05:09 -04:00
## Longer introduction
`supports git, mercurial, darcs, bazaar, subversion, cvs`
This plugin is based on the diffing features of the supported version control
systems. Since not all VCS support the same options, sometimes we have to fall
back to the 'diff' executable.
Current the following VCS are supported:
- git
- mercurial (hg)
- bazaar (bzr)
- darcs
- subversion (svn)
- cvs
Note: CVS detection is disabled by default, because it can lead to considerable
delay if the current repo is not a CVS one and the environment variable $CVSROOT
is set nevertheless because a remote connection could be made.
`quick jumping between changed lines`
There are mappings for jumping forth and back between changed lines (so-called
hunks). The following example shows the default mappings and how to change them:
let g:signify_mapping_next_hunk = '<leader>gn'
let g:signify_mapping_prev_hunk = '<leader>gp'
Note: In case you don't know about the mapleader, have a look at `:h mapleader`.
The default is the '\' button.
`apart from signs there is also optional line highlighting`
Sy shows you signs for changed lines. Moveover, you can enable highlighting of
the concerned lines:
let g:signify_mapping_toggle_highlight = '<leader>gh'
You can also change the highlighting classes for these lines. The defaults are:
let g:signify_line_color_add = 'DiffAdd'
let g:signify_line_color_delete = 'DiffDelete'
let g:signify_line_color_change = 'DiffChange'
`you can toggle the plugin per buffer`
In case you want to disable the plugin for the current buffer, you can toggle
it:
let g:signify_mapping_toggle = '<leader>gt'
`exception lists for filetypes and filenames`
If you want to disable Sy for certain kinds of filename or file types,
you explicitely have to create exception lists:
Example:
let g:signify_exceptions_filetype = [ 'vim', 'c' ]
let g:signify_exceptions_filename = [ '.vimrc' ]
`good documentation`
You should know by now!
2013-03-05 14:07:37 -05:00
## Installation
I suggest using tpope's plain and awesome pathogen:
- https://github.com/tpope/vim-pathogen
Afterwards, just clone vim-signify into ~/.vim/bundle/.
2013-03-05 14:07:37 -05:00
## Usage
`:h signify`
2013-03-07 07:55:18 -05:00
## Configuration
For more info: `:h signify-options`
let g:signify_mapping_next_hunk = '<leader>gn'
let g:signify_mapping_prev_hunk = '<leader>gp'
let g:signify_mapping_toggle_highlight = '<leader>gh'
2013-03-10 06:29:19 -04:00
let g:signify_mapping_toggle = '<leader>gt'
2013-03-07 07:55:18 -05:00
2013-03-10 05:59:52 -04:00
let g:signify_exceptions_filetype = [ 'vim', 'c' ]
let g:signify_exceptions_filename = [ '.vimrc' ]
let g:signify_sign_overwrite = 1
2013-03-11 20:14:48 -04:00
let g:signify_sign_add = '+'
let g:signify_sign_delete = '-'
let g:signify_sign_change = '*'
let g:signify_sign_delete = '-'
let g:signify_sign_delete_first_line = '‾'
2013-03-07 07:55:18 -05:00
2013-03-10 05:59:52 -04:00
let g:signify_sign_color_guifg_add = '#00ff00'
let g:signify_sign_color_guifg_delete = '#ff0000'
let g:signify_sign_color_guifg_change = '#ffff00'
let g:signify_sign_color_guibg = '#111111'
2013-03-07 07:55:18 -05:00
2013-03-10 05:59:52 -04:00
let g:signify_sign_color_ctermfg_add = 2
let g:signify_sign_color_ctermfg_delete = 1
let g:signify_sign_color_ctermfg_change = 3
let g:signify_sign_color_ctermbg = 0
2013-03-07 07:55:18 -05:00
2013-03-10 05:59:52 -04:00
let g:signify_sign_color_group_add = 'MyAdd'
let g:signify_sign_color_group_delete = 'MyDelete'
let g:signify_sign_color_group_change = 'MyChange'
2013-03-07 07:55:18 -05:00
2013-03-10 05:59:52 -04:00
let g:signify_line_color_add = 'DiffAdd'
let g:signify_line_color_delete = 'DiffDelete'
let g:signify_line_color_change = 'DiffChange'
2013-03-07 07:55:18 -05:00
2013-03-10 20:00:02 -04:00
let g:signify_enable_cvs = 1
let g:signify_cursorhold_normal = 1
let g:signify_cursorhold_insert = 1
2013-03-05 14:07:37 -05:00
## Author
Marco Hinz `<mh.codebro@gmail.com>`
## License
2013-03-07 07:12:01 -05:00
Copyright © 2013 Marco Hinz. Revised BSD license.