summaryrefslogtreecommitdiffstats
path: root/runtime/plugin/manpager.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/plugin/manpager.vim')
-rw-r--r--runtime/plugin/manpager.vim30
1 files changed, 30 insertions, 0 deletions
diff --git a/runtime/plugin/manpager.vim b/runtime/plugin/manpager.vim
new file mode 100644
index 0000000..dd0d1e8
--- /dev/null
+++ b/runtime/plugin/manpager.vim
@@ -0,0 +1,30 @@
+" Vim plugin for using Vim as manpager.
+" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
+" Last Change: 2018 Feb 04
+
+command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
+
+function! s:ManPager()
+ set nocompatible
+ if exists('+viminfofile')
+ set viminfofile=NONE
+ endif
+ set noswapfile
+
+ 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
+
+ " 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
+
+ syntax on
+endfunction