Mercurial > vim
diff runtime/plugin/manpager.vim @ 13231:167a030448fa
Update runtime files.
commit https://github.com/vim/vim/commit/7254067ee970686cc3ff4a1effc3e49e9192a5c1
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Feb 9 22:00:53 2018 +0100
Update runtime files.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 09 Feb 2018 22:15:07 +0100 |
parents | f690da1b3c04 |
children | 29ec2c198c8d |
line wrap: on
line diff
--- a/runtime/plugin/manpager.vim +++ b/runtime/plugin/manpager.vim @@ -1,29 +1,30 @@ " Vim plugin for using Vim as manpager. " Maintainer: Enno Nagel <ennonagel+vim@gmail.com> -" 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 . ')\)' +function! s:ManPager() + set nocompatible + if exists('+viminfofile') + set viminfofile=NONE + endif + set noswapfile - if $MAN_PN is '1' - let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern )) - else - let manpage = expand($MAN_PN) - endif + setlocal ft=man + runtime ftplugin/man.vim + setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable + + " Emulate 'col -b' + silent keepj keepp %s/\v(.)\b\ze\1?//ge - let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$') - - bwipe! + " 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