diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-07-22 22:09:21 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-07-22 22:09:21 +0200 |
commit | e5e6950193ddf365c6c507ddefcd7f9db939e5ac (patch) | |
tree | 02d8812b3a0e0b73123eab630a4894ae6bc830d6 | |
parent | f03e328348f87e1fe8ce4aad2a6a4237b9f78ce3 (diff) | |
download | vim-git-e5e6950193ddf365c6c507ddefcd7f9db939e5ac.tar.gz |
patch 8.1.1733: the man ftplugin leaves an empty buffer behindv8.1.1733
Problem: The man ftplugin leaves an empty buffer behind.
Solution: Don't make new window and edit, use split. (Jason Franklin)
-rw-r--r-- | runtime/ftplugin/man.vim | 25 | ||||
-rw-r--r-- | src/testdir/test_man.vim | 28 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 43 insertions, 12 deletions
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim index 87773ed27..fb3f7f90a 100644 --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam <goweol@gmail.com> -" 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 <SID>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 <SID>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 1485ec321..b1cb982a1 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 cdff0d349..e544975d1 100644 --- a/src/version.c +++ b/src/version.c @@ -778,6 +778,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1733, +/**/ 1732, /**/ 1731, |