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 |
| 6 | " Last Change: 2022 Jun 18 |
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 | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 26 | " allow dot and dash in manual page name. |
| 27 | setlocal iskeyword+=\.,- |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 28 | let b:undo_ftplugin = "setlocal iskeyword<" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 29 | |
| 30 | " Add mappings, unless the user didn't want this. |
| 31 | if !exists("no_plugin_maps") && !exists("no_man_maps") |
| 32 | if !hasmapto('<Plug>ManBS') |
| 33 | nmap <buffer> <LocalLeader>h <Plug>ManBS |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 34 | let b:undo_ftplugin = b:undo_ftplugin |
| 35 | \ . '|silent! nunmap <buffer> <LocalLeader>h' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 36 | endif |
Bram Moolenaar | d2cec5b | 2006-03-28 21:08:56 +0000 | [diff] [blame] | 37 | nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>'' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 38 | |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 39 | nnoremap <buffer> <silent> <c-]> :call dist#man#PreGetPage(v:count)<CR> |
| 40 | nnoremap <buffer> <silent> <c-t> :call dist#man#PopPage()<CR> |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 41 | nnoremap <buffer> <silent> q :q<CR> |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 42 | |
| 43 | " Add undo commands for the maps |
| 44 | let b:undo_ftplugin = b:undo_ftplugin |
| 45 | \ . '|silent! nunmap <buffer> <Plug>ManBS' |
| 46 | \ . '|silent! nunmap <buffer> <c-]>' |
| 47 | \ . '|silent! nunmap <buffer> <c-t>' |
| 48 | \ . '|silent! nunmap <buffer> q' |
Bram Moolenaar | d042dc8 | 2015-11-24 19:18:36 +0100 | [diff] [blame] | 49 | endif |
| 50 | |
| 51 | if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1) |
| 52 | setlocal foldmethod=indent foldnestmax=1 foldenable |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 53 | let b:undo_ftplugin = b:undo_ftplugin |
| 54 | \ . '|silent! setl fdm< fdn< fen<' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 55 | endif |
| 56 | |
| 57 | endif |
| 58 | |
| 59 | if exists(":Man") != 2 |
Bram Moolenaar | d799daa | 2022-06-20 11:17:32 +0100 | [diff] [blame] | 60 | com -nargs=+ -complete=shellcmd Man call dist#man#GetPage(<q-mods>, <f-args>) |
| 61 | nmap <Leader>K :call dist#man#PreGetPage(0)<CR> |
| 62 | nmap <Plug>ManPreGetPage :call dist#man#PreGetPage(0)<CR> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 63 | endif |
| 64 | |
Bram Moolenaar | 91f84f6 | 2018-07-29 15:07:52 +0200 | [diff] [blame] | 65 | let &cpo = s:cpo_save |
| 66 | unlet s:cpo_save |
| 67 | |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 68 | " vim: set sw=2 ts=8 noet: |