1" Vim syntax file 2" Language: fstab file 3" Maintainer: David Ne\v{c}as (Yeti) <[email protected]> 4" Original Maintainer: Radu Dineiu <[email protected]> 5" License: This file can be redistribued and/or modified under the same terms 6" as Vim itself. 7" URL: http://trific.ath.cx/Ftp/vim/syntax/fstab.vim 8" Last Change: 2006-04-16 9 10" Options: let fstab_unknown_fs_errors = 1 to highlight unknown filesystems 11" as errors 12 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19" General 20syn cluster fsGeneralCluster contains=fsComment 21syn match fsComment /\s*#.*/ 22syn match fsOperator /[,=]/ 23 24" Device 25syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError 26syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:]\|^\w\{-}\ze\W\)/ contained 27syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs 28syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel 29syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator 30 31" Mount Point 32syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError 33syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@]\|\s\+\zs\w\{-}\ze\s\)/ contained 34syn keyword fsMountPointKeyword contained none swap 35 36" Type 37syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown 38syn match fsTypeUnknown /\s\+\zs\w\+/ contained 39syn keyword fsTypeKeyword contained adfs affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext3 fdesc hfs hpfs iso9660 jffs jffs2 jfs kernfs linprocfs mfs minix msdos ncpfs nfs none none ntfs null nwfs ovlfs portal proc procfs qnx4 reiserfs romfs shm smbfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs 40 41" Options 42" ------- 43" Options: General 44syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown 45syn match fsOptionsNumber /\d\+/ 46syn match fsOptionsNumberOctal /[0-8]\+/ 47syn match fsOptionsString /[a-zA-Z0-9_-]\+/ 48syn keyword fsOptionsYesNo yes no 49syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck 50syn keyword fsOptionsSize 512 1024 2048 51syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user[s] xx 52syn match fsOptionsGeneral /_netdev/ 53 54" Options: adfs 55syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber 56 57" Options: affs 58syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber 59syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString 60syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize 61syn keyword fsOptionsKeywords contained protect usemp verbose 62 63" Options: cd9660 64syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet 65 66" Options: devpts 67" -- everything already defined 68 69" Options: ext2 70syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster 71syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors 72syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber 73syn keyword fsOptionsExt2Check contained none normal strict 74syn keyword fsOptionsExt2Errors contained continue panic 75syn match fsOptionsExt2Errors contained /\<remount-ro\>/ 76syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf noacl nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr 77 78" Options: ext3 79syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal 80syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data 81syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber 82syn keyword fsOptionsExt3Journal contained update inum 83syn keyword fsOptionsExt3Data contained journal ordered writeback 84syn keyword fsOptionsKeywords contained noload 85 86" Options: fat 87syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize 88syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal 89syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString 90syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster 91syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv 92syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType 93syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo 94syn keyword fsOptionsFatCheck contained r n s relaxed normal strict 95syn keyword fsOptionsConv contained b t a binary text auto 96syn keyword fsOptionsFatType contained 12 16 32 97syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots 98 99" Options: hfs 100syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString 101syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal 102syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber 103 104" Options: hpfs 105syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase 106syn keyword fsOptionsHpfsCase contained lower asis 107 108" Options: iso9660 109syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap 110syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize 111syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber 112syn keyword fsOptionsIsoMap contained n o a normal off acorn 113syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft 114syn keyword fsOptionsConv contained m mtext 115 116" Options: jfs 117syn keyword fsOptionsKeywords nointegrity integrity 118 119" Options: nfs 120syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString 121syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock 122 123" Options: ntfs 124syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber 125syn keyword fsOptionsKeywords contained utf8 126 127" Options: proc 128" -- everything already defined 129 130" Options: reiserfs 131syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash 132syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber 133syn keyword fsOptionsReiserHash contained rupasov tea r5 detect 134syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly 135 136" Options: subfs 137syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString 138syn keyword fsOptionsKeywords contained procuid 139 140" Options: swap 141syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber 142 143" Options: tmpfs 144syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber 145 146" Options: udf 147syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString 148syn keyword fsOptionsKeywords contained unhide undelete strict novrs 149 150" Options: ufs 151syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType 152syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError 153syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep 154syn match fsOptionsUfsType contained /\<nextstep-cd\>/ 155syn keyword fsOptionsUfsError contained panic lock umount repair 156 157" Options: usbfs 158syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber 159syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal 160 161" Options: vfat 162syn keyword fsOptionsKeywords contained nonumtail posix utf8 163syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname 164syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed 165 166" Options: xfs 167syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString 168syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce 169 170" Frequency / Pass No. 171syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError 172syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained 173syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained 174 175" Groups 176syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster 177syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained 178syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained 179syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained 180syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained 181 182" Whole line comments 183syn match fsCommentLine /^#.*$/ 184 185if version >= 508 || !exists("did_config_syntax_inits") 186 if version < 508 187 let did_config_syntax_inits = 1 188 command! -nargs=+ HiLink hi link <args> 189 else 190 command! -nargs=+ HiLink hi def link <args> 191 endif 192 193 HiLink fsOperator Operator 194 HiLink fsComment Comment 195 HiLink fsCommentLine Comment 196 197 HiLink fsTypeKeyword Type 198 HiLink fsDeviceKeyword Identifier 199 HiLink fsDeviceLabel String 200 HiLink fsFreqPassNumber Number 201 202 if exists('fstab_unknown_fs_errors') 203 HiLink fsTypeUnknown Error 204 endif 205 HiLink fsDeviceError Error 206 HiLink fsMountPointError Error 207 HiLink fsMountPointKeyword Keyword 208 HiLink fsFreqPassError Error 209 210 HiLink fsOptionsGeneral Type 211 HiLink fsOptionsKeywords Keyword 212 HiLink fsOptionsNumber Number 213 HiLink fsOptionsNumberOctal Number 214 HiLink fsOptionsString String 215 HiLink fsOptionsSize Number 216 HiLink fsOptionsExt2Check String 217 HiLink fsOptionsExt2Errors String 218 HiLink fsOptionsExt3Journal String 219 HiLink fsOptionsExt3Data String 220 HiLink fsOptionsFatCheck String 221 HiLink fsOptionsConv String 222 HiLink fsOptionsFatType Number 223 HiLink fsOptionsYesNo String 224 HiLink fsOptionsHpfsCase String 225 HiLink fsOptionsIsoMap String 226 HiLink fsOptionsReiserHash String 227 HiLink fsOptionsUfsType String 228 HiLink fsOptionsUfsError String 229 230 HiLink fsOptionsVfatShortname String 231 232 delcommand HiLink 233endif 234 235let b:current_syntax = "fstab" 236 237" vim: ts=8 ft=vim 238