| Crates.io | zabrze |
| lib.rs | zabrze |
| version | 0.7.2 |
| created_at | 2021-08-15 08:54:36.821929+00 |
| updated_at | 2026-01-24 03:32:21.078262+00 |
| description | ZSH abbreviation exapansion plugin |
| homepage | |
| repository | https://github.com/Ryooooooga/zabrze |
| max_upload_size | |
| id | 437176 |
| size | 110,159 |
ZSH abbreviation expansion plugin
# ~/.config/zabrze/config.toml
[[snippets]]
name = "git"
trigger = "g"
snippet = "git"
[[snippets]]
name = "awk '{print $1}'"
trigger = ".1"
snippet = "awk '{print $1}'"
$ eval "$(zabrze init --bind-keys)"
then
$ g<SP>
# ↓ expanded
$ git
$ cat a.txt | .1<CR>
# ↓ expanded and executed
$ cat a.txt | awk '{print $1}'
[[snippets]]
name = ">/dev/null 2>&1"
trigger = "null"
snippet = ">/dev/null 2>&1"
global = true
$ echo a null<SP>
# ↓ expanded
$ echo a >/dev/null 2>&1
[[snippets]]
name = "git commit"
trigger = "c"
snippet = "commit"
global = true
context = '^git\s'
[[snippets]]
name = "git commit -m"
trigger = "cm"
snippet = "commit -m '{}'"
cursor = "{}" # optional; defaults to "{}"
global = true
context = '^git\s'
[[snippets]]
name = "branch name"
trigger = "B"
snippet = "$(git symbolic-ref --short HEAD)"
evaluate = true
global = true
context = '^git\s'
$ git c<SP>
# ↓ expanded
$ git commit
$ git cm<SP>
# ↓ expanded and move into quotes
$ git commit -m '|'
$ git push -d origin B<CR>
# ↓ expanded and executed
$ git push -d origin main
[[snippets]]
name = "chrome"
trigger = "chrome"
snippet = "open -a 'Google Chrome'"
if = '[[ "$OSTYPE" =~ darwin ]]' # only available in macOS
[[snippets]]
name = "trash"
trigger = "rm"
snippet = "trash"
if = "(( ${+commands[trash]} ))" # available if trash is installed
[[snippets]]
name = "rm -r"
trigger = "rm"
snippet = "rm -r" # fallback
[[snippets]]
name = "python3 *.py"
trigger-pattern = '^(?<file>.+\.py)$'
snippet = "python3 $file"
evaluate = true
# or
[[snippets]]
name = "python3 *.py"
trigger-pattern = '\.py$'
snippet = "python3 $trigger"
evaluate = true
$ ./a.py<CR>
# ↓ expanded and executed
$ python3 ./a.py
You can download a binary release here.
zinit blockf light-mode as"program" from"gh-r" for \
atload'eval "$(zabrze init --bind-keys)"' \
Ryooooooga/zabrze
$ cargo install zabrze
$ brew install ryooooooga/tap/zabrze
⚠️ Note: YAML configuration format is deprecated. Please use TOML instead.
zabrze reads configuration files from the following locations:
$ZABRZE_CONFIG_HOME if set, otherwise $XDG_CONFIG_HOME/zabrze (defaults to $HOME/.config/zabrze)toml (recommended), yaml (deprecated), and yml (deprecated).The configuration file (TOML) defines a list of abbreviations. Each abbreviation has the following properties:
name (string): A descriptive name for the abbreviation.trigger (string, required, mutually exclusive with trigger-pattern): The abbreviation to expand.trigger-pattern (string, required, mutually exclusive with trigger): A regular expression to match the abbreviation.snippet (string, required): The text to replace the abbreviation with.global (boolean): A boolean value indicating whether the abbreviation should be expanded globally. Defaults to false.context (string): A regular expression that must match the beginning of the line for the abbreviation to be expanded.evaluate (boolean): A boolean value indicating whether the snippet should be evaluated as a shell command. Defaults to false.if (string): A conditional expression that must evaluate to true for the abbreviation to be expanded.cursor (string or null): A string that specifies the cursor position after expansion. Defaults to {}.abort-on-error (boolean): Experimental: When evaluate is true, this option controls the behavior when a command inside the snippet fails. If true, the snippet expansion will be aborted if the command substitution fails. Defaults to false.