この質問は、次のような競合ブロックで私たちまたは彼らを選択するための有用なマッピングをどのように持つかについてです。
<<<<<<< HEAD
ours code
=======
theirs code
>>>>>>> branch
次のコードを ~/.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>
そのためのプラグインを作成しました: 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.