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