diff --git a/user/kakoune/git-mode.kak b/user/kakoune/git-mode.kak index ec4ed14..e016f1b 100644 --- a/user/kakoune/git-mode.kak +++ b/user/kakoune/git-mode.kak @@ -32,6 +32,7 @@ map global git 'N' ': git-next-merge-conflict ' -docstring 'next git me map global git 'P' ': git-prev-merge-conflict ' -docstring 'previous git merge conflict' map global git 'm' ': git-merge-head ' -docstring 'merge using head' map global git 'M' ': git-merge-new ' -docstring 'merge using new' +map global git '' ': git-merge-head-and-new ' -docstring 'merge using both head and new' map global git '' ': git-merge-original ' -docstring 'merge using original' define-command -override git-next-merge-conflict %{ @@ -92,6 +93,19 @@ define-command -override git-merge-new %{ } } -docstring "merge using new" +define-command -override git-merge-head-and-new %{ + evaluate-commands -draft %{ + # delete head marker + execute-keys ^{4,}xd + # select middle of conflict + execute-keys /^[|]{4,}x + # extendo to theirs marker + execute-keys ?^={4,}xd + # delete end marker + execute-keys /^{4,}xd + } +} -docstring "merge using head and new" + define-command -override git-graph %{ try %{ delete-buffer '*git-graph*' } edit -scratch '*git-graph*'