Shell Scripts
Shell Scripts (bash, zsh, dash, sh) are supported natively by Zed.
- Tree-sitter: tree-sitter/tree-sitter-bash
Settings
You can configure various settings for Shell Scripts in your Zed User Settings (~/.config/zed/settings.json
) or Zed Project Settings (.zed/settings.json
):
"languages": {
"Shell Script": {
"tab_size": 2,
"hard_tabs": false
}
}
Formatting
Zed supports auto-formatting Shell Scripts using external tools like shfmt
.
- Install
shfmt
:
brew install shfmt # macos (homebrew)
sudo apt-get install shfmt # debian/ubuntu
dnf install shfmt # fedora
yum install shfmt # redhat
pacman -Sy shfmt # archlinux
choco install shfmt # windows (chocolatey)
- Ensure
shfmt
is available in your path and check the version:
which shfmt
shfmt --version
- Configure Zed to automatically format Shell Scripts with
shfmt
on save:
"languages": {
"Shell Script": {
"format_on_save": "on",
"formatter": {
"external": {
"command": "shfmt",
// Change `--indent 2` to match your preferred tab_size
"arguments": ["--filename", "{buffer_path}", "--indent", "2"]
}
}
}
}