1" Vim syntax file 2" Language: fstab file 3" Maintainer: Radu Dineiu <[email protected]> 4" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim 5" Last Change: 2013 May 21 6" Version: 1.0 7" 8" Credits: 9" David Necas (Yeti) <[email protected]> 10" Stefano Zacchiroli <[email protected]> 11" Georgi Georgiev <[email protected]> 12" James Vega <[email protected]> 13" Elias Probst <[email protected]> 14 15" Options: 16" let fstab_unknown_fs_errors = 1 17" highlight unknown filesystems as errors 18" 19" let fstab_unknown_device_errors = 0 20" do not highlight unknown devices as errors 21 22if version < 600 23 syntax clear 24elseif exists("b:current_syntax") 25 finish 26endif 27 28let s:cpo_save = &cpo 29set cpo&vim 30 31" General 32syn cluster fsGeneralCluster contains=fsComment 33syn match fsComment /\s*#.*/ contains=@Spell 34syn match fsOperator /[,=:#]/ 35 36" Device 37syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError 38syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained 39syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs 40syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel 41syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID 42syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs 43syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/ 44syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator 45syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator 46syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator 47 48" Mount Point 49syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError 50syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained 51syn keyword fsMountPointKeyword contained none swap 52 53" Type 54syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown 55syn match fsTypeUnknown /\s\+\zs\w\+/ contained 56syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs 57 58" Options 59" ------- 60" Options: General 61syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown 62syn match fsOptionsNumber /\d\+/ 63syn match fsOptionsNumberOctal /[0-8]\+/ 64syn match fsOptionsString /[a-zA-Z0-9_-]\+/ 65syn keyword fsOptionsYesNo yes no 66syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck 67syn keyword fsOptionsSize 512 1024 2048 68syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user users xx 69syn match fsOptionsGeneral /_netdev/ 70 71" Options: adfs 72syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber 73 74" Options: affs 75syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber 76syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString 77syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize 78syn keyword fsOptionsKeywords contained protect usemp verbose 79 80" Options: btrfs 81syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString 82syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber 83syn keyword fsOptionsKeywords contained degraded nodatasum nodatacow nobarrier ssd ssd_spread noacl notreelog flushoncommit space_cache nospace_cache clear_cache user_subvol_rm_allowed autodefrag inode_cache enospc_debug recovery check_int check_int_data skip_balance discard 84 85" Options: cd9660 86syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet 87 88" Options: devpts 89" -- everything already defined 90 91" Options: ext2 92syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster 93syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors 94syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber 95syn keyword fsOptionsExt2Check contained none normal strict 96syn keyword fsOptionsExt2Errors contained continue panic 97syn match fsOptionsExt2Errors contained /\<remount-ro\>/ 98syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr 99 100" Options: ext3 101syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal 102syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data 103syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber 104syn keyword fsOptionsExt3Journal contained update inum 105syn keyword fsOptionsExt3Data contained journal ordered writeback 106syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl 107 108" Options: ext4 109syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal 110syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data 111syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier 112syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber 113syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber 114syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber 115syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber 116syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber 117syn keyword fsOptionsExt4Journal contained update inum 118syn keyword fsOptionsExt4Data contained journal ordered writeback 119syn match fsOptionsExt4Barrier /[0-1]/ 120syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh 121 122" Options: fat 123syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize 124syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal 125syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString 126syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster 127syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv 128syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType 129syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo 130syn keyword fsOptionsFatCheck contained r n s relaxed normal strict 131syn keyword fsOptionsConv contained b t a binary text auto 132syn keyword fsOptionsFatType contained 12 16 32 133syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots 134 135" Options: hfs 136syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString 137syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal 138syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber 139 140" Options: ffs 141syn keyword fsOptionsKeyWords contained softdep 142 143" Options: hpfs 144syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase 145syn keyword fsOptionsHpfsCase contained lower asis 146 147" Options: iso9660 148syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap 149syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize 150syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber 151syn keyword fsOptionsIsoMap contained n o a normal off acorn 152syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft 153syn keyword fsOptionsConv contained m mtext 154 155" Options: jfs 156syn keyword fsOptionsKeywords nointegrity integrity 157 158" Options: nfs 159syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString 160syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock 161 162" Options: ntfs 163syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber 164syn keyword fsOptionsKeywords contained utf8 165 166" Options: proc 167" -- everything already defined 168 169" Options: reiserfs 170syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash 171syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber 172syn keyword fsOptionsReiserHash contained rupasov tea r5 detect 173syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly 174 175" Options: sshfs 176syn match fsOptionsKeywords contained /\<\%(BatchMode\|ChallengeResponseAuthentication\|CheckHostIP\|ClearAllForwardings\|Compression\|EnableSSHKeysign\|ForwardAgent\|ForwardX11\|ForwardX11Trusted\|GatewayPorts\|GSSAPIAuthentication\|GSSAPIDelegateCredentials\|HashKnownHosts\|HostbasedAuthentication\|IdentitiesOnly\|NoHostAuthenticationForLocalhost\|PasswordAuthentication\|PubkeyAuthentication\|RhostsRSAAuthentication\|RSAAuthentication\|TCPKeepAlive\|UsePrivilegedPort\|cache\)=/ nextgroup=fsOptionsYesNo 177syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk 178syn match fsOptionsKeywords contained /\<\%(AddressFamily\|BindAddress\|Cipher\|Ciphers\|ControlPath\|DynamicForward\|EscapeChar\|GlobalKnownHostsFile\|HostKeyAlgorithms\|HostKeyAlias\|HostName\|IdentityFile\|KbdInteractiveDevices\|LocalForward\|LogLevel\|MACs\|PreferredAuthentications\|Protocol\|ProxyCommand\|RemoteForward\|RhostsAuthentication\|SendEnv\|SmartcardDevice\|User\|UserKnownHostsFile\|XAuthLocation\|comment\|workaround\|idmap\|ssh_command\|sftp_server\|fsname\)=/ nextgroup=fsOptionsString 179syn match fsOptionsKeywords contained /\<\%(CompressionLevel\|ConnectionAttempts\|ConnectTimeout\|NumberOfPasswordPrompts\|Port\|ServerAliveCountMax\|ServerAliveInterval\|cache_timeout\|cache_X_timeout\|ssh_protocol\|directport\|max_read\|umask\|uid\|gid\|entry_timeout\|negative_timeout\|attr_timeout\)=/ nextgroup=fsOptionsNumber 180syn keyword fsOptionsKeywords contained reconnect sshfs_sync no_readahead sshfs_debug transform_symlinks allow_other allow_root nonempty default_permissions large_read hard_remove use_ino readdir_ino direct_io kernel_cache 181syn keyword fsOptionsSshYesNoAsk contained yes no ask 182 183" Options: subfs 184syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString 185syn keyword fsOptionsKeywords contained procuid 186 187" Options: swap 188syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber 189 190" Options: tmpfs 191syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber 192 193" Options: udf 194syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString 195syn keyword fsOptionsKeywords contained unhide undelete strict novrs 196 197" Options: ufs 198syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType 199syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError 200syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep 201syn match fsOptionsUfsType contained /\<nextstep-cd\>/ 202syn keyword fsOptionsUfsError contained panic lock umount repair 203 204" Options: usbfs 205syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber 206syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal 207 208" Options: vfat 209syn keyword fsOptionsKeywords contained nonumtail posix utf8 210syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname 211syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed 212 213" Options: xfs 214syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString 215syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce 216 217" Frequency / Pass No. 218syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError 219syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained 220syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained 221 222" Groups 223syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster 224syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained 225syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained 226syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained 227syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained 228 229" Whole line comments 230syn match fsCommentLine /^#.*$/ contains=@Spell 231 232if version >= 508 || !exists("did_config_syntax_inits") 233 if version < 508 234 let did_config_syntax_inits = 1 235 command! -nargs=+ HiLink hi link <args> 236 else 237 command! -nargs=+ HiLink hi def link <args> 238 endif 239 240 HiLink fsOperator Operator 241 HiLink fsComment Comment 242 HiLink fsCommentLine Comment 243 244 HiLink fsTypeKeyword Type 245 HiLink fsDeviceKeyword Identifier 246 HiLink fsDeviceLabel String 247 HiLink fsDeviceUUID String 248 HiLink fsDeviceSshfs String 249 HiLink fsFreqPassNumber Number 250 251 if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1 252 HiLink fsTypeUnknown Error 253 endif 254 255 if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1 256 HiLink fsDeviceError Error 257 endif 258 259 HiLink fsMountPointError Error 260 HiLink fsMountPointKeyword Keyword 261 HiLink fsFreqPassError Error 262 263 HiLink fsOptionsGeneral Type 264 HiLink fsOptionsKeywords Keyword 265 HiLink fsOptionsNumber Number 266 HiLink fsOptionsNumberOctal Number 267 HiLink fsOptionsString String 268 HiLink fsOptionsSize Number 269 HiLink fsOptionsExt2Check String 270 HiLink fsOptionsExt2Errors String 271 HiLink fsOptionsExt3Journal String 272 HiLink fsOptionsExt3Data String 273 HiLink fsOptionsExt4Journal String 274 HiLink fsOptionsExt4Data String 275 HiLink fsOptionsExt4Barrier Number 276 HiLink fsOptionsFatCheck String 277 HiLink fsOptionsConv String 278 HiLink fsOptionsFatType Number 279 HiLink fsOptionsYesNo String 280 HiLink fsOptionsHpfsCase String 281 HiLink fsOptionsIsoMap String 282 HiLink fsOptionsReiserHash String 283 HiLink fsOptionsSshYesNoAsk String 284 HiLink fsOptionsUfsType String 285 HiLink fsOptionsUfsError String 286 287 HiLink fsOptionsVfatShortname String 288 289 delcommand HiLink 290endif 291 292let b:current_syntax = "fstab" 293 294let &cpo = s:cpo_save 295unlet s:cpo_save 296 297" vim: ts=8 ft=vim 298