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