Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim filetype plugin file |
| 2 | " Language: man |
Bram Moolenaar | 7ceefb3 | 2020-05-01 16:07:38 +0200 | [diff] [blame] | 3 | " Maintainer: Jason Franklin <vim@justemail.net> |
Bram Moolenaar | 2cfb4a2 | 2020-05-07 18:56:00 +0200 | [diff] [blame] | 4 | " Maintainer: SungHyun Nam <goweol@gmail.com> |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 5 | " Autoload Split: Bram Moolenaar |
Bram Moolenaar | 71badf9 | 2023-04-22 22:40:14 +0100 | [diff] [blame] | 6 | " Last Change: 2023 Mar 21 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7 | |
| 8 | " To make the ":Man" command available before editing a manual page, source |
| 9 | " this script from your startup vimrc file. |
| 10 | |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 11 | " If 'filetype' isn't "man", we must have been called to define ":Man" and not |
| 12 | " to do the filetype plugin stuff. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 13 | if &filetype == "man" |
| 14 | |
| 15 | " Only do this when not done yet for this buffer |
| 16 | if exists("b:did_ftplugin") |
| 17 | finish |
| 18 | endif |
| 19 | let b:did_ftplugin = 1 |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 20 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 21 | |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 22 | let s:cpo_save = &cpo |
| 23 | set cpo-=C |
| 24 | |
| 25 | if &filetype == "man" |
Bram Moolenaar | f269eab | 2022-10-03 18:04:35 +0100 | [diff] [blame] | 26 | " Allow hyphen, plus, colon, dot, and commercial at in manual page name. |
Bram Moolenaar | 71badf9 | 2023-04-22 22:40:14 +0100 | [diff] [blame] | 27 | " Parentheses are not here but in dist#man#PreGetPage() |
| 28 | setlocal iskeyword=48-57,_,a-z,A-Z,-,+,:,.,@-@ |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 29 | let b:undo_ftplugin = "setlocal iskeyword<" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 30 | |
| 31 | " Add mappings, unless the user didn't want this. |
| 32 | if !exists("no_plugin_maps") && !exists("no_man_maps") |
| 33 | if !hasmapto('<Plug>ManBS') |
| 34 | nmap <buffer> <LocalLeader>h <Plug>ManBS |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 35 | let b:undo_ftplugin = b:undo_ftplugin |
| 36 | \ . '|silent! nunmap <buffer> <LocalLeader>h' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 37 | endif |
Bram Moolenaar | d2cec5b | 2006-03-28 21:08:56 +0000 | [diff] [blame] | 38 | nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>'' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 39 | |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 40 | nnoremap <buffer> <silent> <c-]> :call dist#man#PreGetPage(v:count)<CR> |
| 41 | nnoremap <buffer> <silent> <c-t> :call dist#man#PopPage()<CR> |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 42 | nnoremap <buffer> <silent> q :q<CR> |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 43 | |
| 44 | " Add undo commands for the maps |
| 45 | let b:undo_ftplugin = b:undo_ftplugin |
| 46 | \ . '|silent! nunmap <buffer> <Plug>ManBS' |
| 47 | \ . '|silent! nunmap <buffer> <c-]>' |
| 48 | \ . '|silent! nunmap <buffer> <c-t>' |
| 49 | \ . '|silent! nunmap <buffer> q' |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 50 | endif |
| 51 | |
| 52 | if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1) |
| 53 | setlocal foldmethod=indent foldnestmax=1 foldenable |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 54 | let b:undo_ftplugin = b:undo_ftplugin |
| 55 | \ . '|silent! setl fdm< fdn< fen<' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 56 | endif |
| 57 | |
| 58 | endif |
| 59 | |
| 60 | if exists(":Man") != 2 |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 61 | com -nargs=+ -complete=shellcmd Man call dist#man#GetPage(<q-mods>, <f-args>) |
| 62 | nmap <Leader>K :call dist#man#PreGetPage(0)<CR> |
| 63 | nmap <Plug>ManPreGetPage :call dist#man#PreGetPage(0)<CR> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 64 | endif |
| 65 | |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 66 | let &cpo = s:cpo_save |
| 67 | unlet s:cpo_save |
| 68 | |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 69 | " vim: set sw=2 ts=8 noet: |