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> |
Konfekt | f416a22 | 2024-10-02 19:28:44 +0200 | [diff] [blame] | 4 | " Latest Revision: 2024-10-02 (small fixes to &keywordprg) |
Bram Moolenaar | 60cce2f | 2015-10-13 23:21:27 +0200 | [diff] [blame] | 5 | |
Enno | 5036e69 | 2023-10-18 11:38:19 +0200 | [diff] [blame] | 6 | if exists("b:did_ftplugin") |
| 7 | finish |
Bram Moolenaar | 60cce2f | 2015-10-13 23:21:27 +0200 | [diff] [blame] | 8 | endif |
Enno | 5036e69 | 2023-10-18 11:38:19 +0200 | [diff] [blame] | 9 | " Looks a lot like dosini files. |
| 10 | runtime! ftplugin/dosini.vim |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 11 | |
Konfekt | f86568f | 2024-09-19 19:34:40 +0200 | [diff] [blame] | 12 | if has('unix') && executable('less') && exists(':terminal') == 2 |
Konfekt | f416a22 | 2024-10-02 19:28:44 +0200 | [diff] [blame] | 13 | command! -buffer -nargs=1 SystemdKeywordPrg silent exe 'term ++close ' KeywordLookup_systemd(<q-args>) |
Konfekt | f86568f | 2024-09-19 19:34:40 +0200 | [diff] [blame] | 14 | silent! function KeywordLookup_systemd(keyword) abort |
| 15 | let matches = matchlist(getline(search('\v^\s*\[\s*.+\s*\]\s*$', 'nbWz')), '\v^\s*\[\s*(\k+).*\]\s*$') |
| 16 | if len(matches) > 1 |
| 17 | let section = matches[1] |
Konfekt | f416a22 | 2024-10-02 19:28:44 +0200 | [diff] [blame] | 18 | return 'env LESS= MANPAGER="less --pattern=''(^|,)\\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd.' . section |
Enno | 2f25e40 | 2023-08-23 21:27:50 +0200 | [diff] [blame] | 19 | else |
Konfekt | f416a22 | 2024-10-02 19:28:44 +0200 | [diff] [blame] | 20 | return 'env LESS= MANPAGER="less --pattern=''(^|,)\\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd' |
Enno | 2f25e40 | 2023-08-23 21:27:50 +0200 | [diff] [blame] | 21 | endif |
Konfekt | f86568f | 2024-09-19 19:34:40 +0200 | [diff] [blame] | 22 | endfunction |
| 23 | setlocal iskeyword+=- |
| 24 | setlocal keywordprg=:SystemdKeywordPrg |
| 25 | if !exists('b:undo_ftplugin') || empty(b:undo_ftplugin) |
Konfekt | f416a22 | 2024-10-02 19:28:44 +0200 | [diff] [blame] | 26 | let b:undo_ftplugin = 'setlocal keywordprg< iskeyword< | sil! delc -buffer SystemdKeywordPrg' |
Konfekt | f86568f | 2024-09-19 19:34:40 +0200 | [diff] [blame] | 27 | else |
| 28 | let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SystemdKeywordPrg' |
Enno | 2f25e40 | 2023-08-23 21:27:50 +0200 | [diff] [blame] | 29 | endif |
Bram Moolenaar | 2c7f8c5 | 2020-04-20 19:52:53 +0200 | [diff] [blame] | 30 | endif |