xref: /vim-8.2.3635/runtime/plugin/manpager.vim (revision 6aa57295)
1b20545f2SBram Moolenaar" Vim plugin for using Vim as manpager.
2b20545f2SBram Moolenaar" Maintainer: Enno Nagel <[email protected]>
3*6aa57295SBram Moolenaar" Last Change: 2020 Aug 05
4b20545f2SBram Moolenaar
57254067eSBram Moolenaarcommand! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
67254067eSBram Moolenaar
77254067eSBram Moolenaarfunction! s:ManPager()
87254067eSBram Moolenaar  set nocompatible
97254067eSBram Moolenaar  if exists('+viminfofile')
107254067eSBram Moolenaar    set viminfofile=NONE
11b20545f2SBram Moolenaar  endif
127254067eSBram Moolenaar  set noswapfile
13b20545f2SBram Moolenaar
147254067eSBram Moolenaar  setlocal ft=man
157254067eSBram Moolenaar  runtime ftplugin/man.vim
167254067eSBram Moolenaar  setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable
17b20545f2SBram Moolenaar
187254067eSBram Moolenaar  " Emulate 'col -b'
19*6aa57295SBram Moolenaar  silent! keepj keepp %s/\v(.)\b\ze\1?//ge
20*6aa57295SBram Moolenaar
21*6aa57295SBram Moolenaar  " Remove ansi sequences
22*6aa57295SBram Moolenaar  silent! keepj keepp %s/\v\e\[%(%(\d;)?\d{1,2})?[mK]//ge
23b20545f2SBram Moolenaar
247254067eSBram Moolenaar  " Remove empty lines above the header
257254067eSBram Moolenaar  call cursor(1, 1)
267254067eSBram Moolenaar  let n = search(".*(.*)", "c")
277254067eSBram Moolenaar  if n > 1
287254067eSBram Moolenaar    exe "1," . n-1 . "d"
29b20545f2SBram Moolenaar  endif
307254067eSBram Moolenaar  setlocal nomodified readonly
31b20545f2SBram Moolenaar
327254067eSBram Moolenaar  syntax on
33b20545f2SBram Moolenaarendfunction
34