From 7254067ee970686cc3ff4a1effc3e49e9192a5c1 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 9 Feb 2018 22:00:53 +0100 Subject: Update runtime files. --- runtime/plugin/manpager.vim | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/manpager.vim b/runtime/plugin/manpager.vim index 9ae2e7357f..dd0d1e8bce 100644 --- a/runtime/plugin/manpager.vim +++ b/runtime/plugin/manpager.vim @@ -1,29 +1,30 @@ " Vim plugin for using Vim as manpager. " Maintainer: Enno Nagel -" Last Change: 2017 November 07 +" Last Change: 2018 Feb 04 -" $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 -command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER - -function! s:MANPAGER() - 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' - let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern )) - else - let manpage = expand($MAN_PN) +function! s:ManPager() + set nocompatible + if exists('+viminfofile') + set viminfofile=NONE endif + set noswapfile - let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$') + setlocal ft=man + runtime ftplugin/man.vim + setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable - bwipe! + " Emulate 'col -b' + silent keepj keepp %s/\v(.)\b\ze\1?//ge + + " Remove empty lines above the header + call cursor(1, 1) + let n = search(".*(.*)", "c") + if n > 1 + exe "1," . n-1 . "d" + endif + setlocal nomodified readonly - setlocal filetype=man - exe 'Man' page_sec[2] page_sec[1] + syntax on endfunction -- cgit v1.2.3