xref: /vim-8.2.3635/runtime/ftplugin/systemd.vim (revision 2c7f8c57)
160cce2fbSBram Moolenaar" Vim filetype plugin file
260cce2fbSBram Moolenaar" Language:			systemd.unit(5)
3*2c7f8c57SBram Moolenaar" Keyword Lookup Support:	Enno Nagel <enno.nagel[email protected]>
460cce2fbSBram Moolenaar
560cce2fbSBram Moolenaarif !exists('b:did_ftplugin')
660cce2fbSBram Moolenaar  " Looks a lot like dosini files.
760cce2fbSBram Moolenaar  runtime! ftplugin/dosini.vim
860cce2fbSBram Moolenaarendif
9*2c7f8c57SBram Moolenaar
10*2c7f8c57SBram Moolenaarif !has('unix')
11*2c7f8c57SBram Moolenaar  finish
12*2c7f8c57SBram Moolenaarendif
13*2c7f8c57SBram Moolenaar
14*2c7f8c57SBram Moolenaarif !has('gui_running')
15*2c7f8c57SBram Moolenaar  command! -buffer -nargs=1 Sman silent exe '!' . KeywordLookup_systemd(<q-args>) | redraw!
16*2c7f8c57SBram Moolenaarelseif has('terminal')
17*2c7f8c57SBram Moolenaar  command! -buffer -nargs=1 Sman silent exe 'term ' . KeywordLookup_systemd(<q-args>)
18*2c7f8c57SBram Moolenaarelse
19*2c7f8c57SBram Moolenaar  finish
20*2c7f8c57SBram Moolenaarendif
21*2c7f8c57SBram Moolenaar
22*2c7f8c57SBram Moolenaarif !exists('*KeywordLookup_systemd')
23*2c7f8c57SBram Moolenaar  function KeywordLookup_systemd(keyword) abort
24*2c7f8c57SBram Moolenaar    let matches = matchlist(getline(search('\v^\s*\[\s*.+\s*\]\s*$', 'nbWz')), '\v^\s*\[\s*(\k+).*\]\s*$')
25*2c7f8c57SBram Moolenaar    if len(matches) > 1
26*2c7f8c57SBram Moolenaar      let section = matches[1]
27*2c7f8c57SBram Moolenaar      return 'LESS= MANPAGER="less --pattern=''(^|,)\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd.' . section
28*2c7f8c57SBram Moolenaar    else
29*2c7f8c57SBram Moolenaar      return 'LESS= MANPAGER="less --pattern=''(^|,)\s+' . a:keyword . '=$'' --hilite-search" man ' . 'systemd'
30*2c7f8c57SBram Moolenaar    endif
31*2c7f8c57SBram Moolenaar  endfunction
32*2c7f8c57SBram Moolenaarendif
33*2c7f8c57SBram Moolenaar
34*2c7f8c57SBram Moolenaarsetlocal iskeyword+=-
35*2c7f8c57SBram Moolenaarsetlocal keywordprg=:Sman
36*2c7f8c57SBram Moolenaar
37*2c7f8c57SBram Moolenaarif !exists('b:undo_ftplugin') || empty(b:undo_ftplugin)
38*2c7f8c57SBram Moolenaar  let b:undo_ftplugin = 'setlocal keywordprg< iskeyword<'
39*2c7f8c57SBram Moolenaarelse
40*2c7f8c57SBram Moolenaar  let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword<'
41*2c7f8c57SBram Moolenaarendif
42