aboutsummaryrefslogtreecommitdiff
path: root/vim/ftdetect/sh.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/ftdetect/sh.vim')
-rw-r--r--vim/ftdetect/sh.vim31
1 files changed, 31 insertions, 0 deletions
diff --git a/vim/ftdetect/sh.vim b/vim/ftdetect/sh.vim
new file mode 100644
index 00000000..f2bc0df2
--- /dev/null
+++ b/vim/ftdetect/sh.vim
@@ -0,0 +1,31 @@
+" Add automatic commands to choose shell flavours based on filename pattern
+augroup dfsh
+
+ " Names/paths of things that are Bash shell script
+ autocmd BufNewFile,BufRead
+ \ **/.dotfiles/bash/**,bash-fc-*
+ \ let b:is_bash = 1 |
+ \ setlocal filetype=sh
+
+ " Names/paths of things that are Korn shell script
+ autocmd BufNewFile,BufRead
+ \ **/.dotfiles/ksh/**,.kshrc,*.ksh
+ \ let b:is_kornshell = 1 |
+ \ setlocal filetype=sh
+
+ " Names/paths of things that are POSIX shell script
+ autocmd BufNewFile,BufRead
+ \ **/.dotfiles/sh/**,.shinit,.shrc,.xinitrc,/etc/default/*
+ \ let b:is_posix = 1 |
+ \ setlocal filetype=sh
+
+ " If we determined something is b:is_kornshell, tack on b:is_ksh as well so
+ " we can still tease out what is actually a kornshell script after sh.vim is
+ " done changing our options for us; it conflates POSIX with Korn shell.
+ autocmd BufNewFile,BufRead
+ \ *
+ \ if exists('b:is_kornshell') |
+ \ let b:is_ksh = 1 |
+ \ endif
+
+augroup END