commit 2cf1603699e971f5e583db29c54c558fcf94e0e8 Author: momota Date: Tue Jun 21 21:43:17 2016 +0900 initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..2aabd3a --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +junos.vim +========= + +Vim syntax for Junos configuration files. + +License +======= + +[MIT](http://opensource.org/licenses/MIT) diff --git a/ftdetect/junos.vim b/ftdetect/junos.vim new file mode 100644 index 0000000..ab60767 --- /dev/null +++ b/ftdetect/junos.vim @@ -0,0 +1,5 @@ +" Vim ftdetect file +" Language: junos +" Maintainer: Makoto Momota +" Latest Revision: 21 Jun. 2016 +autocmd BufNewFile,BufReadPost *.junos set filetype=junos diff --git a/syntax/junos.vim b/syntax/junos.vim new file mode 100644 index 0000000..f34ef38 --- /dev/null +++ b/syntax/junos.vim @@ -0,0 +1,90 @@ +" Vim syntax file +" Language: junos +" Maintainer: Makoto Momota + +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword+=- +setlocal iskeyword+=. +setlocal iskeyword+=_ + +syn match junosDef /\s\u\S\+/ + +syn keyword junosCond if else for-each +syn keyword junosCond to-zone from-zone match then from to match + +syn keyword junosLabel system chassis firewall security rule rule-set pool + +syn keyword junosKeyword class user link-mode port-mode speed address route nat policy vlan-id +syn keyword junosKeyword source-address destination-address source-port destination-port +syn keyword junosKeyword static filter term routing-instances routing-engine line-card next-hop storm-control +syn keyword junosKeyword redundancy-group cluster vrrp-group virtual-router +syn keyword junosKeyword alg log login +syn match junosKeyword /interfaces\=/ +syn match junosKeyword /vlans\=/ +syn match junosKeyword /members\=/ +syn match junosKeyword /\(security\-\)\?zones\=/ +syn match junosKeyword /protocols\=/ +syn match junosKeyword /applications\=/ + +syn keyword junosProtocol ip ipv6 inet inet6 tcp udp +syn keyword junosProtocol snmp ntp syslog ssh ftp ftp-data dns sql +syn keyword junosProtocol bgp ospf ospf3 rip ripng isis +syn keyword junosProtocol igmp igmp-snooping lldp lldp-med mld mld-snooping msdp mstp mvrp mpls vrrp lacp +syn keyword junosProtocol stp sflow vstp dot1x msrp msrpc sunrpc icmp ping pim rstp rsvp netconf +syn keyword junosProtocol junos-http junos-https junos-ftp junos-ssh junos-icmp-all junos-ntp junos-smtp +syn keyword junosProtocol junos-udp junos-telnet junos-bgp junos-syslog +syn match junosProtocol /\s802\.3ad\s/ +syn match junosProtocol /\s802\.1Q\s/ + +syn keyword junosAction any deny permit accept reject discard disable enable + +syn keyword junosConfigure set delete rename insert request show +syn keyword junosConfigure 100m 1g 10g trunk access +syn keyword junosConfigure full-duplex automatic auto-negotiation input output + +syn keyword junosFunction id host host-name +syn match junosFunction /[a-z]\+:[-a-z]\+/ +syn match junosFunction /unit\s[0-9]\+/ +syn match junosFunction /vlan\.[0-9]\+/ +syn match junosFunction /node[0-9]\+/ + +syn match junosComment "description.*$" +syn match junosComment "\s*#.*$" +syn region junosComment contained start='/*' end='*/' + +syn match junosString "\"[^"]*\"" +syn match junosVar "\$\<[-_a-zA-Z0-9]*\>" +syn match junosVar /\d\+/ + +syn keyword junosInterface lo0 +syn match junosInterface "\(xe\|ge\|vcp\)\-[0-9]\+\/[0-9]\+\/[0-9]\+\( \|\n\|\s\|\.[0-9]\+\)" +syn match junosInterface "ae[0-9]\+\( \|\n\|\s\|\.[0-9]\+\)" +syn match junosInterface "reth[0-9]\+\( \|\n\|\s\|\.[0-9]\+\)" +syn match junosInterface "fab[0-9]\+\( \|\n\|\s\|\.[0-9]\+\)" +syn match junosInterface "vcp\-[0-9]\+\( \|\n\|\s\|\.[0-9]\+\)" +syn match junosInterface "virtual\-chassis" +syn match junosInterface "vlan\sunit\s[0-9]\+" + +" IPv4: complex version +syn match junosIpv4 /\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\(\.\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\)\{3}/ +syn match junosIpv4 /\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\(\.\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\)\{3}\/[0-9]\{1,2\}/ + + +hi link junosKeyword Statement +hi link junosInterface Underlined +hi link junosProtocol Type +hi link junosAction Error +hi link junosFunction Function +hi link junosLabel Identifier +hi link junosCond Type +hi link junosComment Comment +hi link junosString String +hi link junosVar Identifier +hi link junosConfigure Function +hi link junosDef String +hi link junosIpv4 Underlined + +let b:current_syntax = "junos"