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