From c99f0ff06bd1915b2f05c5750283aa9e826ad3d8 Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Mon, 14 Apr 2014 13:33:12 -0400 Subject: [PATCH] Restore ridiculous hack to set cursor position on :Gdiff This time with :setlocal. Closes #471. References #475. --- plugin/fugitive.vim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index 14957b5..2043dfe 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -1513,6 +1513,9 @@ function! s:Diff(bang,...) abort let spec = s:repo().translate(file) let commit = matchstr(spec,'\C[^:/]//\zs\x\+') let restore = s:diff_restore() + if exists('+cursorbind') + setlocal cursorbind + endif let w:fugitive_diff_restore = restore if s:buffer().compare_age(commit) < 0 execute 'rightbelow '.vert.'diffsplit '.s:fnameescape(spec) @@ -1520,6 +1523,11 @@ function! s:Diff(bang,...) abort execute 'leftabove '.vert.'diffsplit '.s:fnameescape(spec) endif let w:fugitive_diff_restore = restore + let winnr = winnr() + if getwinvar('#', '&diff') + wincmd p + call feedkeys("\p", 'n') + endif return '' catch /^fugitive:/ return 'echoerr v:errmsg'