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 |
Christian Brabandt | 6dcd7f1 | 2024-06-06 19:06:38 +0200 | [diff] [blame] | 6 | " Last Change: 2024 Jun 06 (disabled the q mapping, #8210) |
Ivan Shapovalov | 84ca138 | 2024-07-06 16:56:02 +0200 | [diff] [blame] | 7 | " 2024 Jul 06 (use nnoremap, #15130) |
Luca Saccarola | 1c4f402 | 2024-08-22 21:16:25 +0200 | [diff] [blame] | 8 | " 2024 Aug 22 (fix the <Plug>ManBS mapping, #15547) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 9 | |
| 10 | " To make the ":Man" command available before editing a manual page, source |
| 11 | " this script from your startup vimrc file. |
| 12 | |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 13 | " If 'filetype' isn't "man", we must have been called to define ":Man" and not |
| 14 | " to do the filetype plugin stuff. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 15 | if &filetype == "man" |
| 16 | |
| 17 | " Only do this when not done yet for this buffer |
| 18 | if exists("b:did_ftplugin") |
| 19 | finish |
| 20 | endif |
| 21 | let b:did_ftplugin = 1 |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 22 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 23 | |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 24 | let s:cpo_save = &cpo |
| 25 | set cpo-=C |
| 26 | |
| 27 | if &filetype == "man" |
Bram Moolenaar | f269eab | 2022-10-03 18:04:35 +0100 | [diff] [blame] | 28 | " Allow hyphen, plus, colon, dot, and commercial at in manual page name. |
Bram Moolenaar | 71badf9 | 2023-04-22 22:40:14 +0100 | [diff] [blame] | 29 | " Parentheses are not here but in dist#man#PreGetPage() |
| 30 | setlocal iskeyword=48-57,_,a-z,A-Z,-,+,:,.,@-@ |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 31 | let b:undo_ftplugin = "setlocal iskeyword<" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 32 | |
| 33 | " Add mappings, unless the user didn't want this. |
| 34 | if !exists("no_plugin_maps") && !exists("no_man_maps") |
| 35 | if !hasmapto('<Plug>ManBS') |
| 36 | nmap <buffer> <LocalLeader>h <Plug>ManBS |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 37 | let b:undo_ftplugin = b:undo_ftplugin |
| 38 | \ . '|silent! nunmap <buffer> <LocalLeader>h' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 39 | endif |
Luca Saccarola | 1c4f402 | 2024-08-22 21:16:25 +0200 | [diff] [blame] | 40 | nnoremap <buffer> <Plug>ManBS :setl ma<bar>%s/.\b//ge<bar>setl noma<CR> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 41 | |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 42 | nnoremap <buffer> <silent> <c-]> :call dist#man#PreGetPage(v:count)<CR> |
| 43 | nnoremap <buffer> <silent> <c-t> :call dist#man#PopPage()<CR> |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 44 | |
| 45 | " Add undo commands for the maps |
| 46 | let b:undo_ftplugin = b:undo_ftplugin |
| 47 | \ . '|silent! nunmap <buffer> <Plug>ManBS' |
| 48 | \ . '|silent! nunmap <buffer> <c-]>' |
| 49 | \ . '|silent! nunmap <buffer> <c-t>' |
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>) |
Ivan Shapovalov | f21ca6d | 2024-07-06 16:16:40 +0200 | [diff] [blame] | 62 | nnoremap <Leader>K :call dist#man#PreGetPage(0)<CR> |
| 63 | nnoremap <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: |