Bram Moolenaar | 60cce2f | 2015-10-13 23:21:27 +0200 | [diff] [blame] | 1 | " Vim filetype plugin file |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 2 | " Language: systemd.unit(5) |
| 3 | " Keyword Lookup Support: Enno Nagel <enno.nagel+vim@gmail.com> |
Bram Moolenaar | 60cce2f | 2015-10-13 23:21:27 +0200 | [diff] [blame] | 4 | |
| 5 | if !exists('b:did_ftplugin') |
| 6 | " Looks a lot like dosini files. |
| 7 | runtime! ftplugin/dosini.vim |
| 8 | endif |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 9 | |
Enno | 2f25e40 | 2023-08-23 21:27:50 +0200 | [diff] [blame] | 10 | if has('unix') && executable('less') |
| 11 | if !has('gui_running') |
| 12 | command -buffer -nargs=1 Sman silent exe '!' . KeywordLookup_systemd(<q-args>) | redraw! |
| 13 | elseif has('terminal') |
| 14 | command -buffer -nargs=1 Sman silent exe 'term ' . KeywordLookup_systemd(<q-args>) |
| 15 | endif |
| 16 | if exists(':Sman') == 2 |
| 17 | if !exists('*KeywordLookup_systemd') |
| 18 | function KeywordLookup_systemd(keyword) abort |
| 19 | let matches = matchlist(getline(search('\v^\s*\[\s*.+\s*\]\s*$', 'nbWz')), '\v^\s*\[\s*(\k+).*\]\s*$') |
| 20 | if len(matches) > 1 |
| 21 | let section = matches[1] |
| 22 | return 'LESS= MANPAGER="less --pattern=''(^|,)\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd.' . section |
| 23 | else |
| 24 | return 'LESS= MANPAGER="less --pattern=''(^|,)\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd' |
| 25 | endif |
| 26 | endfunction |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 27 | endif |
Enno | 2f25e40 | 2023-08-23 21:27:50 +0200 | [diff] [blame] | 28 | setlocal iskeyword+=- |
| 29 | setlocal keywordprg=:Sman |
| 30 | if !exists('b:undo_ftplugin') || empty(b:undo_ftplugin) |
| 31 | let b:undo_ftplugin = 'setlocal keywordprg< iskeyword<' |
| 32 | else |
| 33 | let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword<' |
| 34 | endif |
| 35 | endif |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 36 | endif |