kamailio.vim 1012 B

123456789101112131415161718192021222324252627282930313233
  1. " Copy this file to $HOME/.vim/ftdetect/kamailio.vim
  2. func! s:cfgType()
  3. let max = line("$") > 400 ? 400 : line("$")
  4. for n in range(1, max)
  5. if getline(n) =~ '^\s*#!\(KAMAILIO\|OPENSER\|SER\|ALL\|MAXCOMPAT\)'
  6. set filetype=kamailio
  7. return
  8. elseif getline(n) =~ '^\s*#!\(define\|ifdef\|ifndef\|endif\|subst\|substdef\)'
  9. set filetype=kamailio
  10. return
  11. elseif getline(n) =~ '^\s*!!\(define\|ifdef\|ifndef\|endif\|subst\|substdef\)'
  12. set filetype=kamailio
  13. return
  14. elseif getline(n) =~ '^\s*modparam\s*(\s*"[^"]\+"'
  15. set filetype=kamailio
  16. return
  17. elseif getline(n) =~ '^\s*loadmodule\s'
  18. set filetype=kamailio
  19. return
  20. elseif getline(n) =~ '^\s*request_route\s*{\s*'
  21. set filetype=kamailio
  22. return
  23. elseif getline(n) =~ '^\s*route\s*{\s*'
  24. set filetype=kamailio
  25. return
  26. endif
  27. endfor
  28. setf cfg
  29. endfunc
  30. au BufNewFile,BufRead *.cfg call s:cfgType()