summaryrefslogtreecommitdiffstats
path: root/runtime/plugin
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-02-09 22:00:53 +0100
committerBram Moolenaar <Bram@vim.org>2018-02-09 22:00:53 +0100
commit7254067ee970686cc3ff4a1effc3e49e9192a5c1 (patch)
tree09d484d661772818ee7ad4f3cbe1558d8c900dd5 /runtime/plugin
parent5459129af2a832a027a1e7ca2d6177c26647d64f (diff)
Update runtime files.
Diffstat (limited to 'runtime/plugin')
-rw-r--r--runtime/plugin/manpager.vim41
1 files changed, 21 insertions, 20 deletions
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 <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