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 | |
| 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.
| -rw-r--r-- | bundle/unimpaired-vcs-conflict-movement/autoload/unimpaired_vcs_conflict_movement.vim | 46 | ||||
| -rw-r--r-- | bundle/unimpaired-vcs-conflict-movement/plugin/unimpaired_vcs_conflict_movement.vim | 22 | 
2 files changed, 68 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 diff --git a/bundle/unimpaired-vcs-conflict-movement/plugin/unimpaired_vcs_conflict_movement.vim b/bundle/unimpaired-vcs-conflict-movement/plugin/unimpaired_vcs_conflict_movement.vim new file mode 100644 index 0000000..8ce033e --- /dev/null +++ b/bundle/unimpaired-vcs-conflict-movement/plugin/unimpaired_vcs_conflict_movement.vim @@ -0,0 +1,22 @@ +" 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. + +nmap [n <Plug>unimpairedContextPrevious +nmap ]n <Plug>unimpairedContextNext +omap [n <Plug>unimpairedContextPrevious +omap ]n <Plug>unimpairedContextNext + +nnoremap <silent> <Plug>unimpairedContextPrevious :call unimpaired_vcs_conflict_movement#Context(1)<CR> +nnoremap <silent> <Plug>unimpairedContextNext     :call unimpaired_vcs_conflict_movement#Context(0)<CR> +onoremap <silent> <Plug>unimpairedContextPrevious :call unimpaired_vcs_conflict_movement#ContextMotion(1)<CR> +onoremap <silent> <Plug>unimpairedContextNext     :call unimpaired_vcs_conflict_movement#ContextMotion(0)<CR> | 
