ciscoacl.vim 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. "
  2. " Vim syntax file
  3. " Language: cisco access-list files
  4. " Maintainer: Vladimir Kotal <vlada@devnull.cz>
  5. "
  6. " Last Modification: 23-Nov-2004
  7. "
  8. "
  9. syntax clear
  10. if version < 600
  11. syntax clear
  12. elseif exists("b:current_syntax")
  13. finish
  14. endif
  15. " syntax case ignore
  16. setlocal iskeyword+=/
  17. setlocal iskeyword+=:
  18. setlocal iskeyword+=.
  19. setlocal iskeyword+=-
  20. setlocal foldmethod=syntax
  21. syn sync fromstart
  22. " keywords
  23. syntax keyword aclCmd permit
  24. syntax keyword aclDeny deny
  25. syntax keyword aclHost host
  26. syntax keyword aclPort bgp chargen cmd daytime discard domain
  27. syntax keyword aclPort echo exec finger ftp ftp-data gopher
  28. syntax keyword aclPort hostname ident irc klogin kshell login
  29. syntax keyword aclPort lpd nntp pim-auto-rp pop2 pop3 smtp sunrpc
  30. syntax keyword aclPort syslog tacacs talk telnet time uucp whois
  31. syntax keyword aclPort www biff bootpc bootps dnsix echo isakmp
  32. syntax keyword aclPort mobile-ip nameserver netbios-dgm netbios-ns
  33. syntax keyword aclPort netbios-ss ntp rip snmp snmptrap sunrpc
  34. syntax keyword aclPort syslog talk tftp time who xdmcp
  35. " protocols
  36. "syntax keyword aclProto icmp ip tcp udp
  37. syntax keyword aclSrcDst any
  38. "syntax keyword aclSrcDst host
  39. "syntax keyword aclLog log logging
  40. " regexps
  41. syntax match aclACL /^access-list\s+/
  42. " TODO: differentiate network address/mask
  43. syntax match ciscoip /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
  44. " syntax match ciscocomment /^!.*/
  45. syntax keyword aclTodo TODO XXX contained
  46. syntax region ciscocomment start="^!" matchgroup=NONE end="$" contains=@cCommentGroup,aclTodo
  47. syntax region ciscocomment start=// end=//
  48. "syntax match aclDefine /[A-Z][A-Z\_0-9]*/ contained
  49. syntax match aclDefine /[A-Z][A-Z\_0-9]*/
  50. "syntax region remark start="^access-list.*remark" end="$" contains=aclACL,aclDefine
  51. syntax region remark start="remark " end="$"
  52. "syntax region portspec start="eq" end="\s*[a-z0-9]*"
  53. "syntax region portspec start="range" end="\s*[a-z0-9]*\s*[a-z0-9]*"
  54. syntax match aclGenericNum /\<\d\+\>/
  55. " Define the default hightlighting.
  56. " For version 5.7 and earlier: only when not done already
  57. " For version 5.8 and later: only when an item doesn't have highlighting yet
  58. if version >= 508 || !exists("did_cisco_syn_inits")
  59. if version < 508
  60. let did_cisco_syn_inits = 1
  61. command -nargs=+ HiLink hi link <args>
  62. else
  63. command -nargs=+ HiLink hi def link <args>
  64. endif
  65. " special highlighting for deny keyword
  66. hi Deny gui=bold guifg=LightRed ctermfg=White ctermbg=LightRed term=underline
  67. HiLink aclDeny Deny
  68. HiLink aclCmd Statement
  69. HiLink ciscoip Type
  70. HiLink remark String
  71. HiLink ciscocomment Comment
  72. HiLink portspec Type
  73. HiLink aclDefine Identifier
  74. HiLink aclGenericNum Constant
  75. HiLink aclPort Constant
  76. HiLink aclSrcDst Type
  77. HiLink aclTodo Todo
  78. delcommand HiLink
  79. endif
  80. let b:current_syntax = "cisco"
  81. " vim:ts=4