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 22" quit when a syntax file was already loaded 23if exists("b:current_syntax") 24 finish 25endif 26 27let s:cpo_save = &cpo 28set cpo&vim 29 30" General 31syn cluster fsGeneralCluster contains=fsComment 32syn match fsComment /\s*#.*/ contains=@Spell 33syn match fsOperator /[,=:#]/ 34 35" Device 36syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError 37syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained 38syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs 39syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel 40syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID 41syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs 42syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/ 43syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator 44syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator 45syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator 46 47" Mount Point 48syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError 49syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained 50syn keyword fsMountPointKeyword contained none swap 51 52" Type 53syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown 54syn match fsTypeUnknown /\s\+\zs\w\+/ contained 55syn 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 56 57" Options 58" ------- 59" Options: General 60syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown 61syn match fsOptionsNumber /\d\+/ 62syn match fsOptionsNumberOctal /[0-8]\+/ 63syn match fsOptionsString /[a-zA-Z0-9_-]\+/ 64syn keyword fsOptionsYesNo yes no 65syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck 66syn keyword fsOptionsSize 512 1024 2048 67syn 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 68syn match fsOptionsGeneral /_netdev/ 69 70" Options: adfs 71syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber 72 73" Options: affs 74syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber 75syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString 76syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize 77syn keyword fsOptionsKeywords contained protect usemp verbose 78 79" Options: btrfs 80syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString 81syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber 82syn 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 83 84" Options: cd9660 85syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet 86 87" Options: devpts 88" -- everything already defined 89 90" Options: ext2 91syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster 92syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors 93syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber 94syn keyword fsOptionsExt2Check contained none normal strict 95syn keyword fsOptionsExt2Errors contained continue panic 96syn match fsOptionsExt2Errors contained /\<remount-ro\>/ 97syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr 98 99" Options: ext3 100syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal 101syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data 102syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber 103syn keyword fsOptionsExt3Journal contained update inum 104syn keyword fsOptionsExt3Data contained journal ordered writeback 105syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl 106 107" Options: ext4 108syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal 109syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data 110syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier 111syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber 112syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber 113syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber 114syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber 115syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber 116syn keyword fsOptionsExt4Journal contained update inum 117syn keyword fsOptionsExt4Data contained journal ordered writeback 118syn match fsOptionsExt4Barrier /[0-1]/ 119syn 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 120 121" Options: fat 122syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize 123syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal 124syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString 125syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster 126syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv 127syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType 128syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo 129syn keyword fsOptionsFatCheck contained r n s relaxed normal strict 130syn keyword fsOptionsConv contained b t a binary text auto 131syn keyword fsOptionsFatType contained 12 16 32 132syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots 133 134" Options: hfs 135syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString 136syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal 137syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber 138 139" Options: ffs 140syn keyword fsOptionsKeyWords contained softdep 141 142" Options: hpfs 143syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase 144syn keyword fsOptionsHpfsCase contained lower asis 145 146" Options: iso9660 147syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap 148syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize 149syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber 150syn keyword fsOptionsIsoMap contained n o a normal off acorn 151syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft 152syn keyword fsOptionsConv contained m mtext 153 154" Options: jfs 155syn keyword fsOptionsKeywords nointegrity integrity 156 157" Options: nfs 158syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString 159syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock 160 161" Options: ntfs 162syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber 163syn keyword fsOptionsKeywords contained utf8 164 165" Options: proc 166" -- everything already defined 167 168" Options: reiserfs 169syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash 170syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber 171syn keyword fsOptionsReiserHash contained rupasov tea r5 detect 172syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly 173 174" Options: sshfs 175syn 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 176syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk 177syn 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 178syn 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 179syn 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 180syn keyword fsOptionsSshYesNoAsk contained yes no ask 181 182" Options: subfs 183syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString 184syn keyword fsOptionsKeywords contained procuid 185 186" Options: swap 187syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber 188 189" Options: tmpfs 190syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber 191 192" Options: udf 193syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString 194syn keyword fsOptionsKeywords contained unhide undelete strict novrs 195 196" Options: ufs 197syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType 198syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError 199syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep 200syn match fsOptionsUfsType contained /\<nextstep-cd\>/ 201syn keyword fsOptionsUfsError contained panic lock umount repair 202 203" Options: usbfs 204syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber 205syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal 206 207" Options: vfat 208syn keyword fsOptionsKeywords contained nonumtail posix utf8 209syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname 210syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed 211 212" Options: xfs 213syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString 214syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce 215 216" Frequency / Pass No. 217syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError 218syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained 219syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained 220 221" Groups 222syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster 223syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained 224syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained 225syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained 226syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained 227 228" Whole line comments 229syn match fsCommentLine /^#.*$/ contains=@Spell 230 231 232hi def link fsOperator Operator 233hi def link fsComment Comment 234hi def link fsCommentLine Comment 235 236hi def link fsTypeKeyword Type 237hi def link fsDeviceKeyword Identifier 238hi def link fsDeviceLabel String 239hi def link fsDeviceUUID String 240hi def link fsDeviceSshfs String 241hi def link fsFreqPassNumber Number 242 243if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1 244hi def link fsTypeUnknown Error 245endif 246 247if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1 248hi def link fsDeviceError Error 249endif 250 251hi def link fsMountPointError Error 252hi def link fsMountPointKeyword Keyword 253hi def link fsFreqPassError Error 254 255hi def link fsOptionsGeneral Type 256hi def link fsOptionsKeywords Keyword 257hi def link fsOptionsNumber Number 258hi def link fsOptionsNumberOctal Number 259hi def link fsOptionsString String 260hi def link fsOptionsSize Number 261hi def link fsOptionsExt2Check String 262hi def link fsOptionsExt2Errors String 263hi def link fsOptionsExt3Journal String 264hi def link fsOptionsExt3Data String 265hi def link fsOptionsExt4Journal String 266hi def link fsOptionsExt4Data String 267hi def link fsOptionsExt4Barrier Number 268hi def link fsOptionsFatCheck String 269hi def link fsOptionsConv String 270hi def link fsOptionsFatType Number 271hi def link fsOptionsYesNo String 272hi def link fsOptionsHpfsCase String 273hi def link fsOptionsIsoMap String 274hi def link fsOptionsReiserHash String 275hi def link fsOptionsSshYesNoAsk String 276hi def link fsOptionsUfsType String 277hi def link fsOptionsUfsError String 278 279hi def link fsOptionsVfatShortname String 280 281 282let b:current_syntax = "fstab" 283 284let &cpo = s:cpo_save 285unlet s:cpo_save 286 287" vim: ts=8 ft=vim 288