diff options
author | Teddy Wing | 2015-02-09 18:59:38 -0500 |
---|---|---|
committer | Teddy Wing | 2015-02-09 18:59:38 -0500 |
commit | c73c88e24c819e1ad92496723096ea5539b2c826 (patch) | |
tree | fbe0ccdf450b60f5b13dfcea9bb09abba70e23b7 /bundle/unimpaired-vcs-conflict-movement/autoload | |
parent | 38f62e3054c5005c5408957f939a16ce696dc53d (diff) | |
download | dotvim-c73c88e24c819e1ad92496723096ea5539b2c826.tar.bz2 |
Add vim-unimpaired merge conflict movements
Grab the movement commands `[n` and `]n` to move between merge conflict
markers. Makes it easier to get around when fixing conflicts in vimdiff.
Copied from Tim Pope's vim-unimpaired plugin.
Diffstat (limited to 'bundle/unimpaired-vcs-conflict-movement/autoload')
-rw-r--r-- | bundle/unimpaired-vcs-conflict-movement/autoload/unimpaired_vcs_conflict_movement.vim | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/bundle/unimpaired-vcs-conflict-movement/autoload/unimpaired_vcs_conflict_movement.vim b/bundle/unimpaired-vcs-conflict-movement/autoload/unimpaired_vcs_conflict_movement.vim new file mode 100644 index 0000000..be296c5 --- /dev/null +++ b/bundle/unimpaired-vcs-conflict-movement/autoload/unimpaired_vcs_conflict_movement.vim @@ -0,0 +1,46 @@ +" Unimpaired VCS Conflict Movement +" Merge conflict movement helper copied from Tim Pope's unimpaired.vim +" Copied directly from +" https://github.com/tpope/vim-unimpaired/blob/3548479cc154154cbdbb6737ca08a47937cc7113/plugin/unimpaired.vim#L102-L144 +" +" I didn't want the full Unimpaired plugin, so just copying this part for now +" because it's something I've wanted for a while. +" +" Note that this file should not be considered to have the same license as the +" rest of the repo. As the code was copied wholesale from unimpaired.vim, this +" file retains the license from the plugin as of 2015.02.09, namely the Vim +" license. + +function! unimpaired_vcs_conflict_movement#Context(reverse) + call search('^@@ .* @@\|^[<=>|]\{7}[<=>|]\@!', a:reverse ? 'bW' : 'W') +endfunction + +function! unimpaired_vcs_conflict_movement#ContextMotion(reverse) + if a:reverse + - + endif + call search('^@@ .* @@\|^diff \|^[<=>|]\{7}[<=>|]\@!', 'bWc') + if getline('.') =~# '^diff ' + let end = search('^diff ', 'Wn') - 1 + if end < 0 + let end = line('$') + endif + elseif getline('.') =~# '^@@ ' + let end = search('^@@ .* @@\|^diff ', 'Wn') - 1 + if end < 0 + let end = line('$') + endif + elseif getline('.') =~# '^=\{7\}' + + + let end = search('^>\{7}>\@!', 'Wnc') + elseif getline('.') =~# '^[<=>|]\{7\}' + let end = search('^[<=>|]\{7}[<=>|]\@!', 'Wn') - 1 + else + return + endif + if end > line('.') + execute 'normal! V'.(end - line('.')).'j' + elseif end == line('.') + normal! V + endif +endfunction |