From f8da1fd6dbd558ebcc743bd7f91d35d6ca8db56a Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Mon, 23 May 2016 10:31:17 +0100 Subject: [PATCH] Preserve screen line position when undoing a hunk. Closes #346. --- autoload/gitgutter.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/autoload/gitgutter.vim b/autoload/gitgutter.vim index b0da84e..24a6c74 100644 --- a/autoload/gitgutter.vim +++ b/autoload/gitgutter.vim @@ -205,8 +205,11 @@ function! gitgutter#undo_hunk() abort let diff_for_hunk = gitgutter#diff#generate_diff_for_hunk(diff, 'undo') call gitgutter#utility#system(gitgutter#utility#command_in_directory_of_file(g:gitgutter_git_executable.' apply --reverse --unidiff-zero - '), diff_for_hunk) - " reload file + " reload file preserving screen line position + let wl = winline() silent edit + let offset = wl - winline() + execute "normal ".offset."\" endif silent! call repeat#set("\GitGutterUndoHunk", -1)