lf.vim (4452B)
1 " Vim syntax file 2 " Language: lf file manager configuration file (lfrc) 3 " Maintainer: Andis Sprinkis <andis@sprinkis.com>, @CatsDeservePets 4 " Former Maintainer: Cameron Wright 5 " URL: https://github.com/andis-sprinkis/lf-vim 6 " Last Change: 4 Feb 2026 7 " 8 " The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt 9 " lf version: 41 10 11 if exists("b:current_syntax") | finish | endif 12 13 let s:cpo = &cpo 14 set cpo&vim 15 16 let b:current_syntax = "lf" 17 18 "{{{ Comment Matching 19 syn match lfComment '#.*$' 20 "}}} 21 22 "{{{ String Matching 23 syn match lfString "'.*'" 24 syn match lfString '".*"' contains=lfSpecial 25 "}}} 26 27 "{{{ Keywords 28 syn keyword lfKeyword set setlocal cmd map cmap nmap vmap skipwhite 29 "}}} 30 31 "{{{ Options Keywords 32 syn keyword lfOptions 33 \ addcustominfo 34 \ anchorfind 35 \ autoquit 36 \ borderfmt 37 \ bottom 38 \ calcdirsize 39 \ cd 40 \ cleaner 41 \ clear 42 \ clearmaps 43 \ cmaps 44 \ cmd-capitalize-word 45 \ cmd-complete 46 \ cmd-delete 47 \ cmd-delete-back 48 \ cmd-delete-end 49 \ cmd-delete-home 50 \ cmd-delete-unix-word 51 \ cmd-delete-word 52 \ cmd-delete-word-back 53 \ cmd-end 54 \ cmd-enter 55 \ cmd-escape 56 \ cmd-history-next 57 \ cmd-history-prev 58 \ cmd-home 59 \ cmd-insert 60 \ cmd-interrupt 61 \ cmd-left 62 \ cmd-lowercase-word 63 \ cmd-menu-accept 64 \ cmd-menu-complete 65 \ cmd-menu-complete-back 66 \ cmd-menu-discard 67 \ cmd-right 68 \ cmd-transpose 69 \ cmd-transpose-word 70 \ cmd-uppercase-word 71 \ cmd-word 72 \ cmd-word-back 73 \ cmd-yank 74 \ cmds 75 \ copy 76 \ copyfmt 77 \ cursoractivefmt 78 \ cursorparentfmt 79 \ cursorpreviewfmt 80 \ cut 81 \ cutfmt 82 \ delete 83 \ dircounts 84 \ dirfirst 85 \ dironly 86 \ dirpreviews 87 \ down 88 \ draw 89 \ drawbox 90 \ dupfilefmt 91 \ echo 92 \ echoerr 93 \ echomsg 94 \ errorfmt 95 \ filesep 96 \ filter 97 \ filtermethod 98 \ find 99 \ find-back 100 \ find-next 101 \ find-prev 102 \ findlen 103 \ glob-select 104 \ glob-unselect 105 \ half-down 106 \ half-up 107 \ help 108 \ hidden 109 \ hiddenfiles 110 \ high 111 \ history 112 \ icons 113 \ ifs 114 \ ignorecase 115 \ ignoredia 116 \ incfilter 117 \ incsearch 118 \ info 119 \ infotimefmtnew 120 \ infotimefmtold 121 \ invert 122 \ jump-next 123 \ jump-prev 124 \ load 125 \ low 126 \ maps 127 \ mark-load 128 \ mark-remove 129 \ mark-save 130 \ menufmt 131 \ menuheaderfmt 132 \ menuselectfmt 133 \ mergeindicators 134 \ middle 135 \ mouse 136 \ nmaps 137 \ number 138 \ numberfmt 139 \ on-cd 140 \ on-focus-gained 141 \ on-focus-lost 142 \ on-init 143 \ on-load 144 \ on-quit 145 \ on-redraw 146 \ on-select 147 \ open 148 \ page-down 149 \ page-up 150 \ paste 151 \ period 152 \ pre-cd 153 \ preload 154 \ preserve 155 \ preview 156 \ previewer 157 \ promptfmt 158 \ push 159 \ quit 160 \ ratios 161 \ read 162 \ redraw 163 \ relativenumber 164 \ reload 165 \ rename 166 \ reverse 167 \ roundbox 168 \ rulerfile 169 \ rulerfmt 170 \ scroll-down 171 \ scroll-up 172 \ scrolloff 173 \ search 174 \ search-back 175 \ search-next 176 \ search-prev 177 \ searchmethod 178 \ select 179 \ selectfmt 180 \ selmode 181 \ setfilter 182 \ shell 183 \ shell-async 184 \ shell-pipe 185 \ shell-wait 186 \ shellflag 187 \ shellopts 188 \ showbinds 189 \ sizeunits 190 \ smartcase 191 \ smartdia 192 \ sortby 193 \ source 194 \ statfmt 195 \ sync 196 \ tabstop 197 \ tag 198 \ tag-toggle 199 \ tagfmt 200 \ tempmarks 201 \ timefmt 202 \ toggle 203 \ top 204 \ truncatechar 205 \ truncatepct 206 \ tty-write 207 \ unselect 208 \ up 209 \ updir 210 \ visual 211 \ visual-accept 212 \ visual-change 213 \ visual-discard 214 \ visual-unselect 215 \ visualfmt 216 \ vmaps 217 \ waitmsg 218 \ watch 219 \ wrapscan 220 \ wrapscroll 221 "}}} 222 223 "{{{ Special Matching 224 syn match lfSpecial '\v\<[^>]+\>' 225 syn match lfSpecial '\v\\(["\\abfnrtv]|\o+)' 226 "}}} 227 228 "{{{ Shell Script Matching for cmd 229 let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim") 230 let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax) 231 232 unlet b:current_syntax 233 exe 'syn include @Shell '.s:shell_syntax 234 syn iskeyword @,- 235 let b:current_syntax = "lf" 236 237 syn region lfCommand matchgroup=lfCommandMarker start=' \zs:\ze' end='$' keepend transparent 238 syn region lfCommand matchgroup=lfCommandMarker start=' \zs:{{\ze' end='}}' keepend transparent 239 syn region lfShell matchgroup=lfShellMarker start=' \zs[$!%&]\ze' end='$' keepend contains=@Shell 240 syn region lfShell matchgroup=lfShellMarker start=' \zs[$!%&]{{\ze' end='}}' keepend contains=@Shell 241 "}}} 242 243 "{{{ Link Highlighting 244 hi def link lfComment Comment 245 hi def link lfSpecial SpecialChar 246 hi def link lfString String 247 hi def link lfKeyword Statement 248 hi def link lfOptions Constant 249 hi def link lfCommandMarker Special 250 hi def link lfShellMarker Special 251 "}}} 252 253 let &cpo = s:cpo 254 unlet s:cpo