Bruno BELANYI
a3d8ef9a63
Because a lot of my mappings use the <Leader> key, this is the only file that *must* be loaded before all the others, otherwise the value of leader when the script is read will be erroneous. I also tried to use `git write-tree` and `git commit-tree` to emulate a manual octopus merge to preserve the line history for each file. But honestly that gave a graph that was too ugly for a history that really did not need that amount of accountability. However it is a fun exercise, and I recommend to everyone to try it at least once. See Raymond Chen's blog `The Old New Thing`, with the post titled `How to split out pieces of a file while preserving git line history: The hard way with commit-tree`, for an explanation.
17 lines
646 B
VimL
17 lines
646 B
VimL
" Visual bindings for merging diffs as in normal mode
|
|
xnoremap dp :diffput<cr>
|
|
xnoremap do :diffget<cr>
|
|
|
|
" Git add current file
|
|
nnoremap <Leader>ga :Git add %:p<CR><CR>
|
|
" Open status window
|
|
nnoremap <Leader>gs :Gstatus<CR>
|
|
" Open diff view of current buffer: the up/left window is the current index
|
|
nnoremap <Leader>gd :Gdiffsplit!<CR>
|
|
" Open current file log in new tab, populate its location list with history
|
|
nnoremap <Leader>gl :sp<CR><C-w>T:Gllog --follow -- %:p<CR>
|
|
" Open a buffer to the left with blame information
|
|
nnoremap <Leader>gb :Gblame<CR>
|
|
" Commit staged changes, open a new tab just for it
|
|
nnoremap <Leader>gc :Gcommit -v -q<CR>
|