724eb908a8
Note that this is only valid for bash scripts, since it uses the `bash-language-server` defined in `lsp-clients.el` |
||
---|---|---|
.. | ||
img | ||
config.el | ||
funcs.el | ||
packages.el | ||
README.org |
Shell Scripts layer
Description
This simple layer adds support for shell scripting.
Supported scripting files:
.sh
.fish
: fish shell
Note: For Windows scripting see the layer windows-scripts
Features:
- Auto-completion using company-shell
Sh
scripts linting using shellcheckSh
scripts style checking using bashate- Support for the Language Server Protocol (experimental)
Install
Layer
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add shell-scripts
to the existing dotspacemacs-configuration-layers
list in this
file.
Linting
In order to enable sh
scripts linting, install shellcheck.
Style checking
In order to enable sh
scripts style checking, install bashate.
Setting the backend
To activate the backend set the layer variable shell-scripts-backend
:
(shell-scripts :variables shell-scripts-backend 'lsp)
For spacemacs to use lsp you also need to add lsp
to the
dotspacemacs-configuration-layers
in your ~/.spacemacs
file.
Backend
Language Server Protocol
You have to install the bash language server:
npm i -g bash-language-server
You can find further information on the project's GitHub page.
Key bindings
Key binding | Description |
---|---|
SPC m \ |
insert end-of-line backslashes to the lines in the region |
SPC i ! |
insert shebang in a script file |
SPC m i ! |
insert shebang in a script file |
SPC m i c |
insert switch case statement if supported by shell |
SPC m i i |
insert if statement if supported by shell |
SPC m i f |
insert function definition if supported by shell |
SPC m i o |
insert for loop if supported by shell |
SPC m i e |
insert an indexed for loop if supported by shell |
SPC m i w |
insert while loop if supported by shell |
SPC m i r |
insert repeat loop if supported by shell |
SPC m i s |
insert select loop if supported by shell |
SPC m i u |
insert until loop if supported by shell |
SPC m i g |
insert a getopts while loop if supported by shell |