blob: 13cba5ee395b944aba100d30d8ec082db06b68f3 [file] [log] [blame]
Bram Moolenaarb20545f2016-04-30 14:15:54 +02001" Vim plugin for using Vim as manpager.
2" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
Bram Moolenaar6aa57292021-08-14 21:25:52 +02003" Last Change: 2020 Aug 05
Bram Moolenaarb20545f2016-04-30 14:15:54 +02004
Bram Moolenaar72540672018-02-09 22:00:53 +01005command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
Bram Moolenaarb20545f2016-04-30 14:15:54 +02006
Bram Moolenaar72540672018-02-09 22:00:53 +01007function! s:ManPager()
8 set nocompatible
9 if exists('+viminfofile')
10 set viminfofile=NONE
Bram Moolenaarb20545f2016-04-30 14:15:54 +020011 endif
Bram Moolenaar72540672018-02-09 22:00:53 +010012 set noswapfile
Bram Moolenaarb20545f2016-04-30 14:15:54 +020013
Bram Moolenaar72540672018-02-09 22:00:53 +010014 setlocal ft=man
15 runtime ftplugin/man.vim
16 setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable
Bram Moolenaarb20545f2016-04-30 14:15:54 +020017
Bram Moolenaar72540672018-02-09 22:00:53 +010018 " Emulate 'col -b'
Bram Moolenaar6aa57292021-08-14 21:25:52 +020019 silent! keepj keepp %s/\v(.)\b\ze\1?//ge
20
21 " Remove ansi sequences
22 silent! keepj keepp %s/\v\e\[%(%(\d;)?\d{1,2})?[mK]//ge
Bram Moolenaarb20545f2016-04-30 14:15:54 +020023
Bram Moolenaar72540672018-02-09 22:00:53 +010024 " Remove empty lines above the header
25 call cursor(1, 1)
26 let n = search(".*(.*)", "c")
27 if n > 1
28 exe "1," . n-1 . "d"
29 endif
30 setlocal nomodified readonly
31
32 syntax on
Bram Moolenaarb20545f2016-04-30 14:15:54 +020033endfunction