diff --git a/plugin/magit.vim b/plugin/magit.vim index c50ccf4d213d851320132d58ace222e16c1aaf99..58322aa1500d5a5b82da6c14ca5cb12a28c01d2e 100644 --- a/plugin/magit.vim +++ b/plugin/magit.vim @@ -927,18 +927,20 @@ function! magit#jump_hunk(dir) let back = ( a:dir == 'P' ) ? 'b' : '' let line = search("^@@ ", back . 'wn') if ( line != 0 ) - try - foldclose - catch /^Vim\%((\a\+)\)\=:E490/ - endtry + if ( foldlevel(line('.')) == 2 ) + try + foldclose + catch /^Vim\%((\a\+)\)\=:E490/ + endtry + endif call cursor(line, 0) - try - foldopen - catch /^Vim\%((\a\+)\)\=:E490/ - echohl WarningMsg - echom "Warning: you should have jumped on a folded hunk" - echohl None - endtry + while ( foldclosed(line) != -1 ) + try + foldopen + catch /^Vim\%((\a\+)\)\=:E490/ + break + endtry + endwhile endif endfunction