0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00
vim/runtime/plugin/manpager.vim

30 lines
784 B
VimL
Raw Normal View History

" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
2017-11-11 20:58:53 +01:00
" Last Change: 2017 November 07
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
if empty($MAN_PN)
finish
endif
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER
function! s:MANPAGER()
2017-11-11 20:58:53 +01:00
let page_pattern = '\v\w[-_.:0-9A-Za-z]*'
let sec_pattern = '\v\w+%(\+\w+)*'
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
if $MAN_PN is '1'
2017-11-11 20:58:53 +01:00
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
else
2017-11-11 20:58:53 +01:00
let manpage = expand($MAN_PN)
endif
2017-11-11 20:58:53 +01:00
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$')
bwipe!
setlocal filetype=man
2016-05-20 17:24:11 +02:00
exe 'Man' page_sec[2] page_sec[1]
endfunction