diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-02-09 22:00:53 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-02-09 22:00:53 +0100 |
commit | 7254067ee970686cc3ff4a1effc3e49e9192a5c1 (patch) | |
tree | 09d484d661772818ee7ad4f3cbe1558d8c900dd5 /runtime/plugin | |
parent | 5459129af2a832a027a1e7ca2d6177c26647d64f (diff) | |
download | vim-git-7254067ee970686cc3ff4a1effc3e49e9192a5c1.tar.gz |
Update runtime files.
Diffstat (limited to 'runtime/plugin')
-rw-r--r-- | runtime/plugin/manpager.vim | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/runtime/plugin/manpager.vim b/runtime/plugin/manpager.vim index 9ae2e7357..dd0d1e8bc 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 <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 . ')\)' - - 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 |