Files
vim-ale/shfmt
AJ ONeal 23100394ac ref(installerconf): rename config keys and add full URL support
Renames:
- github_repo → github_releases (back-compat kept)
- github_source → github_sources (back-compat kept)
- gitea_repo → gitea_releases (back-compat kept)

New keys:
- gitea_sources, gitlab_releases, gitlab_sources

All keys now accept either owner/repo shorthand or full URLs:
- github_releases = sharkdp/bat
- github_releases = https://github.com/sharkdp/bat
- gitea_releases = https://git.rootprojects.org/root/pathman

Defaults: github → github.com, gitlab → gitlab.com.
Gitea has no default (self-hosted only).

Updated all 73 releases.conf files from github_repo to github_releases.
2026-03-11 11:51:43 -06:00
..
2026-03-08 19:38:49 -06:00

title, homepage, tagline
title homepage tagline
shfmt https://github.com/mvdan/sh shfmt: Format shell programs

To update or switch versions, run webi shfmt@stable or webi shfmt@beta, etc.

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
~/.local/opt/shfmt/
~/.local/bin/shfmt

Cheat Sheet

shfmt is a shell parser, formatter and interpretter that supports POSIX Shell, Bash and mksh.

Usage: shfmt <flags> <filepath>

Note: If given path is directory, all shell scripts in the directory will be used.

Frequently used flags:

-version
	Show version and exit.

-l
	List files whose formatting differs from shfmt's.

-w
	Write result to file instead of stdout.

-d
	Error with a diff when the formatting differs.

-s
	Simplify the code.

-f
	Recursively find all shell files and print the paths.

Examples

To list files being formatted and write directly to file

shfmt -l -w <filepath>

To show differences between shfmt formatting and original file formatting

shfmt -d <filepath>

See https://github.com/mvdan/sh for more info.