1" Vim indent file 2" Language: ssh config file 3" Maintainer: JasonKim <[email protected]> 4" Last Change: 2020 May 16 5 6if exists("b:did_indent") 7 finish 8endif 9let b:did_indent = 1 10 11setlocal autoindent 12setlocal indentexpr=GetSshconfigIndent(v:lnum) 13setlocal indentkeys=o,O,*<Return>,0=~host\ ,0=~match\ ,0#,!^F 14 15let b:undo_indent = "setlocal autoindent< indentexpr< indentkeys<" 16 17if exists("*GetSshconfigIndent") 18 finish 19endif 20 21function GetSshconfigIndent(lnum) 22 let sw = shiftwidth() 23 let prev_lnum = prevnonblank(a:lnum - 1) 24 let curr_lnum = a:lnum 25 let prev_line = getline(prev_lnum) 26 let curr_line = getline(curr_lnum) 27 if curr_line =~? '^\s*\(host\|match\)\s' 28 return 0 29 elseif prev_line =~? '^\s*\(host\|match\)\s' 30 return sw 31 else 32 return indent(prev_lnum) 33 endif 34endfunction 35