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