This Emacs library provides commands and a minor mode for easily reformatting shell script source code using the shfmt program.
If you choose not to use one of the convenient
packages in MELPA, you'll need to
add the directory containing shfmt.el to your load-path, and
then (require 'shfmt).
Customise the shfmt-command variable as desired, then call
shfmt-buffer or shfmt-region as convenient.
Enable shfmt-on-save-mode in Shell Mode buffers like this:
(add-hook 'sh-mode-hook 'shfmt-on-save-mode)or locally to your project with a form in your .dir-locals.el like this:
((sh-mode
(mode . shfmt-on-save)))You might like to bind shfmt or shfmt-buffer to a key,
e.g. with:
(define-key 'sh-mode-map (kbd "C-c C-f") 'shfmt)