forked from aniani/vim
Problem: The Man plugin doesn't work that well.
Solution: Use "g:ft_man_open_mode" to be able open man pages in vert split
or separate tab. Set nomodifiable for buffer with man content. Add
a test. (Andrey Starodubtsev, closes #873)
60 lines
1.3 KiB
VimL
60 lines
1.3 KiB
VimL
runtime ftplugin/man.vim
|
|
|
|
function Test_g_ft_man_open_mode()
|
|
let l:w = winwidth(1)
|
|
vnew
|
|
let l:h = winheight(1)
|
|
q
|
|
|
|
" split horizontally
|
|
let wincnt = winnr('$')
|
|
Man 'vim'
|
|
if wincnt == winnr('$')
|
|
" Vim manual page cannot be found.
|
|
return
|
|
endif
|
|
call assert_equal(l:w, winwidth(1))
|
|
call assert_true(l:h > winheight(1))
|
|
call assert_equal(1, tabpagenr('$'))
|
|
call assert_equal(1, tabpagenr())
|
|
q
|
|
|
|
" split horizontally
|
|
let g:ft_man_open_mode = "horz"
|
|
Man 'vim'
|
|
call assert_equal(l:w, winwidth(1))
|
|
call assert_true(l:h > winheight(1))
|
|
call assert_equal(1, tabpagenr('$'))
|
|
call assert_equal(1, tabpagenr())
|
|
q
|
|
|
|
" split vertically
|
|
let g:ft_man_open_mode = "vert"
|
|
Man 'vim'
|
|
call assert_true(l:w > winwidth(1))
|
|
call assert_equal(l:h, winheight(1))
|
|
call assert_equal(1, tabpagenr('$'))
|
|
call assert_equal(1, tabpagenr())
|
|
q
|
|
|
|
" separate tab
|
|
let g:ft_man_open_mode = "tab"
|
|
Man 'vim'
|
|
call assert_equal(l:w, winwidth(1))
|
|
call assert_equal(l:h, winheight(1))
|
|
call assert_equal(2, tabpagenr('$'))
|
|
call assert_equal(2, tabpagenr())
|
|
q
|
|
endfunction
|
|
|
|
function Test_nomodifiable()
|
|
let wincnt = winnr('$')
|
|
Man 'vim'
|
|
if wincnt == winnr('$')
|
|
" Vim manual page cannot be found.
|
|
return
|
|
endif
|
|
call assert_false(&l:modifiable)
|
|
q
|
|
endfunction
|