3

この質問は、次のような競合ブロックで私たちまたは彼らを選択するための有用なマッピングをどのように持つかについてです。

<<<<<<< HEAD
ours code
=======
theirs code
>>>>>>> branch
4

2 に答える 2

4

次のコードを ~/.vimrc に貼り付けて、 と を使用する,fcだけ,soです,st( https://github.com/brauliobo/gitconfigで完全な .vimrc )

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Find Nearest
" Source: http://vim.1045645.n5.nabble.com/find-closest-occurrence-in-both-directions-td1183340.html
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""                                                        
function! FindNearest(pattern)
  let @/=a:pattern
  let b:prev = search(a:pattern, 'bncW')
  if b:prev
    let b:next = search(a:pattern, 'ncW')
    if b:next
      let b:cur = line('.')
      if b:cur - b:prev == b:next - b:cur
        " on a match
      elseif b:cur - b:prev < b:next - b:cur
        ?
      else
        /
      endif
    else
      ?
    endif
  else
    /
  endif
endfunction

command! -nargs=1 FN call FindNearest(<q-args>)
nmap \ :FN<space>

""" Select between conflict blocks
" select ours
nmap <leader>so \<<<<<<<<CR>dd/=======<CR>V/>>>>>>><CR>d
" select theirs
nmap <leader>st \<<<<<<<<CR>V/=======<CR>dk/>>>>>>><CR>dd
" find next conflict
nmap <leader>fc /<<<<<<<<CR>
于 2012-07-12T20:50:22.843 に答える
3

そのためのプラグインを作成しました: ConflictMotions。次のマッピングを提供します。

    ]x     Go to [count] next start of a conflict.
    ]X     Go to [count] next end of a conflict.
    [x     Go to [count] previous start of a conflict.
    [X     Go to [count] previous end of a conflict.
    ]z     Go to [count] next conflict marker.
    [z     Go to [count] previous conflict marker.

    ax     "a conflict" text object, select [count] conflicts,
           including the conflict markers.
    az     "a conflict section" text object, select [count]
           sections (i.e. either ours, theirs, or base) including
           the conflict marker above, and in the case of "theirs"
           changes, also the ending conflict marker below.
    iz     "inner conflict section" text object, select current
           section (i.e. either ours, theirs, or base) without
           the surrounding conflict markers.
于 2012-07-13T06:36:50.500 に答える