aboutsummaryrefslogtreecommitdiff
path: root/vim/after/ftplugin/sh.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-30 00:36:55 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-30 00:36:55 +1200
commit2bcce63572e062f34527fbe42bb0f5756a08d8b8 (patch)
tree06aa6b6d3c0261a026574fba1b384661ff6f7bba /vim/after/ftplugin/sh.vim
parentRemove stray vim/autoload/vimrc.vim file (diff)
downloaddotfiles-2bcce63572e062f34527fbe42bb0f5756a08d8b8.tar.gz
dotfiles-2bcce63572e062f34527fbe42bb0f5756a08d8b8.zip
Refactor ftplugins into single files
Each thereby effectively becomes its own .vimrc for that type.
Diffstat (limited to 'vim/after/ftplugin/sh.vim')
-rw-r--r--vim/after/ftplugin/sh.vim46
1 files changed, 46 insertions, 0 deletions
diff --git a/vim/after/ftplugin/sh.vim b/vim/after/ftplugin/sh.vim
new file mode 100644
index 00000000..a59eeee8
--- /dev/null
+++ b/vim/after/ftplugin/sh.vim
@@ -0,0 +1,46 @@
+" Extra configuration for 'sh' filetypes
+if &compatible || v:version < 700 || exists('b:did_ftplugin_after')
+ finish
+endif
+if &filetype !=# 'sh'
+ finish
+endif
+let b:did_ftplugin_after = 1
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|unlet b:did_ftplugin_after'
+
+" Set comment formats
+setlocal comments=:#
+setlocal formatoptions+=or
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|setlocal comments<'
+
+" If subtype is Bash, set 'keywordprg' to han(1df)
+if exists('b:is_bash')
+ setlocal keywordprg=han
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|setlocal keywordprg<'
+endif
+
+" Stop here if the user doesn't want ftplugin mappings
+if exists('g:no_plugin_maps') || exists('g:no_sh_maps')
+ finish
+endif
+
+" Choose check compiler based on file subtype
+if exists('b:is_bash')
+ let b:sh_check_compiler = 'bash'
+elseif exists('b:is_kornshell')
+ let b:sh_check_compiler = 'ksh'
+else
+ let b:sh_check_compiler = 'sh'
+endif
+
+" Set mappings
+nnoremap <buffer> <LocalLeader>c
+ \ :<C-U>call compiler#Make(b:sh_check_compiler)<CR>
+nnoremap <buffer> <LocalLeader>l
+ \ :<C-U>call compiler#Make('shellcheck')<CR>
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|nunmap <buffer> <LocalLeader>c'
+ \ . '|nunmap <buffer> <LocalLeader>l'