diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim index 87773ed279..fb3f7f90a1 100644 --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam -" Last Change: 2019 Jan 22 +" Last Change: 2019 Jul 22 +" (fix by Jason Franklin) " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. @@ -143,6 +144,8 @@ func GetPage(cmdmods, ...) exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") let s:man_tag_depth = s:man_tag_depth + 1 + let open_cmd = 'edit' + " Use an existing "man" window if it exists, otherwise open a new one. if &filetype != "man" let thiswin = winnr() @@ -161,24 +164,22 @@ func GetPage(cmdmods, ...) endif if &filetype != "man" if exists("g:ft_man_open_mode") - if g:ft_man_open_mode == "vert" - vnew - elseif g:ft_man_open_mode == "tab" - tabnew + if g:ft_man_open_mode == 'vert' + let open_cmd = 'vsplit' + elseif g:ft_man_open_mode == 'tab' + let open_cmd = 'tabedit' else - new + let open_cmd = 'split' endif else - if a:cmdmods != '' - exe a:cmdmods . ' new' - else - new - endif + let open_cmd = a:cmdmods . ' split' endif setl nonu fdc=0 endif endif - silent exec "edit $HOME/".page.".".sect."~" + + silent execute open_cmd . " $HOME/" . page . '.' . sect . '~' + " Avoid warning for editing the dummy file twice setl buftype=nofile noswapfile diff --git a/src/testdir/test_man.vim b/src/testdir/test_man.vim index 1485ec3219..b1cb982a17 100644 --- a/src/testdir/test_man.vim +++ b/src/testdir/test_man.vim @@ -46,6 +46,8 @@ function Test_g_ft_man_open_mode() call assert_equal(2, tabpagenr('$')) call assert_equal(2, tabpagenr()) q + + unlet g:ft_man_open_mode endfunction function Test_nomodifiable() @@ -58,3 +60,29 @@ function Test_nomodifiable() call assert_false(&l:modifiable) q endfunction + +function Test_buffer_count_hidden() + %bw! + set hidden + + call assert_equal(1, len(getbufinfo())) + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + Man vim + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + set hidden& +endfunction diff --git a/src/version.c b/src/version.c index cdff0d349b..e544975d18 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1733, /**/ 1732, /**/