Correctly Syntax Highlight Your Shell Scripts
04 Jan 2016
Not all shell scripts are created equal. You may have a do-something.sh
script, or maybe you call
it do-something
? Maybe it uses the bourne shell? Maybe bash? Maybe zsh? I don’t know. We all have
opinions.
You’re probably using vim to edit that thing though, right? If you’re reading this, you probably do.
Isn’t it bothersome when you’re editing that file and want it highlighted with the correct syntax?
That’s easy enough, if you use the .sh
extension.
au BufRead,BufNewFile *.sh set ft=sh
It’s less easy if you mix and match shells or don’t use the file extension. I sometimes don’t. In those cases I check for what’s going on in the she-bang.
au BufRead,BufNewFile,BufWrite *
\ if getline(1) =~ "#!/bin/bash" |
\ set ft=sh |
\ endif
au BufRead,BufNewFile,BufWrite *
\ if getline(1) =~ "#!/bin/zsh" |
\ set ft=zsh |
\ endif
Maybe that’s overkill. Have a better solution? I bet you do :). Let me know!