refactor: change to shorter triggers

This commit is contained in:
Dan 2026-06-09 09:55:45 +08:00
parent 3c46e21b34
commit ae993ef990
4 changed files with 491 additions and 736 deletions

View File

@ -1,40 +1,57 @@
# espanso match file # Base utilities - trigger schema: }b<command>
# b = base
# For a complete introduction, visit the official docs at: https://espanso.org/docs/
# You can use this file to define the base matches (aka snippets)
# that will be available in every application when using espanso.
# Matches are substitution rules: when you type the "trigger" string
# it gets replaced by the "replace" string.
# yaml-language-server: $schema=https://raw.githubusercontent.com/espanso/espanso/dev/schemas/match.schema.json
matches: matches:
# Simple text replacement # --- Dates & Times ---
- trigger: ":espanso" - trigger: "}bd"
replace: "Hi there!" replace: "{{date}}"
# NOTE: espanso uses YAML to define matches, so pay attention to the indentation!
# But matches can also be dynamic:
# Print the current date
- trigger: ":date"
replace: "{{mydate}}"
vars: vars:
- name: mydate - name: date
type: date type: date
params: params:
format: "%m/%d/%Y" format: "%Y-%m-%d"
# Print the output of a shell command - trigger: "}bt"
- trigger: ":shell" replace: "{{time}}"
replace: "{{output}}"
vars: vars:
- name: output - name: time
type: date
params:
format: "%H:%M"
- trigger: "}bdt"
replace: "{{datetime}}"
vars:
- name: datetime
type: date
params:
format: "%Y-%m-%d %H:%M"
- trigger: "}bdts"
replace: "{{isodt}}"
vars:
- name: isodt
type: date
params:
format: "%Y-%m-%dT%H:%M:%S"
# --- Identifiers ---
- trigger: "}bu"
replace: "{{uuid}}"
vars:
- name: uuid
type: shell type: shell
params: params:
cmd: "echo 'Hello from your shell'" cmd: "uuidgen | tr '[:upper:]' '[:lower:]'"
# And much more! For more information, visit the docs: https://espanso.org/docs/ - trigger: "}bp"
replace: "{{pwd}}"
vars:
- name: pwd
type: shell
params:
cmd: "openssl rand -base64 16 | tr -d '=+/'"
# --- Miscellaneous ---
- trigger: "}mutsl"
replace: "mutagen sync list"

View File

@ -1,210 +1,158 @@
# Docker Snippets for Espanso # Docker snippets - trigger schema: }d<command>
# d = docker
matches: matches:
# === Core Docker Commands === # === CORE COMMANDS ===
- trigger: "}dckr" - trigger: "}dr"
replace: "docker run $1$ $2$ $3$ $4$" replace: "docker run {{mode}} {{ports}} {{img}}"
vars: vars:
- name: image - name: img
type: choice type: choice
params: params:
values: ["$|$", "nginx", "postgres:15", "redis:alpine", "node:20"] values: ["$|$", "nginx"]
- name: mode - name: mode
type: choice type: choice
params: params:
values: ["", "-d", "-it"] values: ["", "-d", "-it", "-d --rm"]
- name: ports - name: ports
type: choice type: choice
params: params:
values: ["", "-p 8080:80", "-p 3000:3000", "-p 5432:5432"] values: ["", "-p 8080:80", "-p 3000:3000", "-p 5432:5432"]
- name: volumes
type: choice
params:
values:
["", "-v $(pwd):/app", "-v ~/data:/var/lib/postgresql/data", ""]
- trigger: "}dckb" - trigger: "}db"
replace: "docker build -t $1$ $2$" replace: "docker build -t {{tag}} {{ctx}}"
vars: vars:
- name: tag - name: tag
type: choice type: choice
params: params:
values: ["$|$", "my-app:v1", "my-app:latest"] values: ["$|$", "my-app:latest"]
- name: context - name: ctx
type: choice type: choice
params: params:
values: [".", "/path/to/build/context", ""] values: [".", "/path/to/context"]
- trigger: "}dckp" - trigger: "}dp"
replace: "docker push $1$" replace: "docker push $|$"
vars:
- name: image
type: choice
params:
values: ["$|$", "my-app:v1", "registry.example.com/my-app:latest"]
- trigger: "}dckpl" - trigger: "}dpl"
replace: "docker pull $1$" replace: "docker pull $|$"
vars:
- name: image
type: choice
params:
values: ["$|$", "nginx:latest", "postgres:15-alpine"]
- trigger: "}dckps" - trigger: "}dps"
replace: "docker ps $1$" replace: "docker ps {{opt}}"
vars: vars:
- name: option - name: opt
type: choice type: choice
params: params:
values: values:
["", "-a", "--format \"table {{.Names}}\t{{.Image}}\t{{.Ports}}\""] ["", "-a", '--format "table {{.Names}}\t{{.Image}}\t{{.Status}}"']
- trigger: "}dckim" - trigger: "}di"
replace: "docker images" replace: "docker images"
- trigger: "}dckstop" - trigger: "}dst"
replace: "docker stop $1$" replace: "docker stop $|$"
vars:
- name: target
type: choice
params:
values: ["$|$", "<container-name>", "$(docker ps -q)"]
- trigger: "}dckstopa" - trigger: "}dsta"
replace: "docker stop $(docker ps -q)" replace: "docker stop $(docker ps -q)"
label: Stop ALL running containers (use with caution!)
- trigger: "}dckrm" - trigger: "}drm"
replace: "docker rm $1$" replace: "docker rm $|$"
- trigger: "}drmi"
replace: "docker rmi $|$"
- trigger: "}dl"
replace: "docker logs -f $|$"
- trigger: "}de"
replace: "docker exec -it {{cnt}} {{cmd}}"
vars: vars:
- name: target - name: cnt
type: choice type: choice
params: params:
values: ["$|$", "<container-name>", "$(docker ps -aq)"] values: ["$|$", "<container>"]
- name: cmd
type: choice
params:
values: ["sh", "bash", "/bin/bash"]
- trigger: "}dckrmi" - trigger: "}dpr"
replace: "docker rmi $1$"
vars:
- name: target
type: choice
params:
values: ["$|$", "<image-name>", "$(docker images -q)"]
- trigger: "}dcklog"
replace: "docker logs -f $1$"
vars:
- name: container
type: choice
params:
values: ["$|$", "<container-name>"]
- trigger: "}dckex"
replace: "docker exec -it $1$ $2$"
vars:
- name: container
type: choice
params:
values: ["$|$", "<container-name>"]
- name: command
type: choice
params:
values: ["sh", "bash", "/bin/bash", ""]
- trigger: "}dckprune"
replace: "docker system prune -f" replace: "docker system prune -f"
- trigger: "}dckpruneall" - trigger: "}dpra"
replace: "docker system prune -a --volumes -f" replace: "docker system prune -a --volumes -f"
label: Remove ALL unused Docker resources (irreversible!)
- trigger: "}dckinspect" - trigger: "}din"
replace: "docker inspect $1$" replace: "docker inspect $|$"
# === COMPOSE ===
- trigger: "}dcu"
replace: "docker compose up {{opt}}"
vars: vars:
- name: target - name: opt
type: choice type: choice
params: params:
values: ["$|$", "<container-name>", "<image-name>"] values: ["$|$", "-d", "--build", "-d --build"]
# === Docker Compose Commands === - trigger: "}dcd"
- trigger: "}dckcu" replace: "docker compose down {{opt}}"
replace: "docker compose up $1$ $2$"
vars: vars:
- name: option - name: opt
type: choice
params:
values: ["", "-d", "--build"]
- name: service
type: choice
params:
values: ["$|$", "", "web", "db", "redis"]
- trigger: "}dckcd"
replace: "docker compose down $1$"
vars:
- name: option
type: choice type: choice
params: params:
values: ["", "--volumes", "--rmi all"] values: ["", "--volumes", "--rmi all"]
- trigger: "}dckcl" - trigger: "}dcl"
replace: "docker compose logs -f $1$" replace: "docker compose logs -f $|$"
vars:
- name: service
type: choice
params:
values: ["$|$", "web", "db", ""]
- trigger: "}dckex" - trigger: "}dce"
replace: "docker compose exec $1$ $2$" replace: "docker compose exec {{svc}} {{cmd}}"
vars: vars:
- name: service - name: svc
type: choice type: choice
params: params:
values: ["$|$", "web", "db"] values: ["$|$", "web", "db", "api"]
- name: command - name: cmd
type: choice type: choice
params: params:
values: ["sh", "bash", "python manage.py migrate", ""] values: ["sh", "bash", "python manage.py migrate"]
- trigger: "}dckcb" - trigger: "}dcb"
replace: "docker compose build $1$" replace: "docker compose build $|$"
vars:
- name: service
type: choice
params:
values: ["$|$", "web", "db", ""]
# === Dockerfile Snippets === # === DOCKERFILE SNIPPETS ===
- trigger: "}dckfile" - trigger: "}df"
replace: | replace: |
FROM $1$ FROM {{base}}
WORKDIR /app WORKDIR /app
COPY . . COPY . .
RUN $2$ RUN {{run}}
EXPOSE 80 EXPOSE {{port}}
CMD ["$3$"] CMD ["{{cmd}}"]
vars: vars:
- name: base_image - name: base
type: choice type: choice
params: params:
values: ["$|$", "alpine:latest", "ubuntu:22.04"] values: ["$|$", "node:20-alpine", "python:3.11-slim", "ubuntu:22.04"]
- name: install_cmd - name: run
type: choice type: choice
params: params:
values: values:
[ [
"apt update && apt install -y <package>", "npm ci",
"apk add --no-cache <package>",
"pip install -r requirements.txt", "pip install -r requirements.txt",
"", "apt update && apt install -y <pkg>",
] ]
- name: start_cmd - name: port
type: choice type: choice
params: params:
values: values: ["3000", "8000", "80", "8080"]
["nginx -g 'daemon off;'", "python app.py", "node server.js", ""] - name: cmd
type: choice
params:
values: ["npm start", "python app.py", "node server.js"]
- trigger: "}dckfile-node" - trigger: "}dfn"
replace: | replace: |
FROM node:20-alpine FROM node:20-alpine
WORKDIR /app WORKDIR /app
@ -214,7 +162,7 @@ matches:
EXPOSE 3000 EXPOSE 3000
CMD ["npm", "start"] CMD ["npm", "start"]
- trigger: "}dckfile-py" - trigger: "}dfp"
replace: | replace: |
FROM python:3.11-slim FROM python:3.11-slim
WORKDIR /app WORKDIR /app
@ -224,26 +172,25 @@ matches:
EXPOSE 8000 EXPOSE 8000
CMD ["python", "app.py"] CMD ["python", "app.py"]
# === Common Config Snippets === # === CONFIG ===
- trigger: "}dckignore" - trigger: "}dign"
replace: | replace: |
.git .git
node_modules node_modules
.env .env
*.log *.log
Dockerfile
.dockerignore
dist/ dist/
build/ build/
.dockerignore
- trigger: "}dckenv" - trigger: "}denv"
replace: "ENV $1$=$2$" replace: "ENV {{key}}={{val}}"
vars: vars:
- name: key - name: key
type: choice type: choice
params: params:
values: ["$|$", "NODE_ENV", "PORT", "DB_HOST", "DEBUG"] values: ["$|$", "NODE_ENV", "PORT", "DEBUG"]
- name: value - name: val
type: choice type: choice
params: params:
values: ["production", "3000", "localhost", "true", ""] values: ["production", "3000", "true", "false"]

View File

@ -1,496 +1,293 @@
# Git Snippets for Espanso # Git snippets - trigger schema: }g<command>
# g = git
matches: matches:
# === BASIC COMMANDS === # === DAILY COMMANDS (shortest) ===
# Git init - trigger: "}gs"
- trigger: "}giti"
replace: "git init"
# Git clone
- trigger: "}gitcl"
replace: "git clone $1$"
# Git status
- trigger: "}gits"
replace: "git status" replace: "git status"
# Git add - trigger: "}ga"
- trigger: "}gita" replace: "git add {{what}}"
# replace: "git add $1$"
vars: vars:
- name: "dot" - name: what
type: "choice" type: choice
params: params:
values: values: ["$|$", ".", "-p ", "-u ", "-A "]
- ". "
- ""
- name: "file"
type: "choice"
params:
values:
- "$|$"
- " <filename>"
replace: "git add {{dot}}{{file}}"
# Git commit - trigger: "}gc"
- trigger: "}gitc"
replace: 'git commit -m "$|$"' replace: 'git commit -m "$|$"'
# Git commit with amend - trigger: "}gca"
- trigger: "}gitcam"
replace: 'git commit --amend -m "$|$"' replace: 'git commit --amend -m "$|$"'
# Git commit all - trigger: "}gcan"
- trigger: "}gitcal" replace: "git commit --amend --no-edit"
replace: 'git commit -am "$|$"'
# Git push - trigger: "}gp"
- trigger: "}gitp" replace: "git push {{opt}}"
#replace: "git push $1$ $2$"
vars: vars:
- name: "option" - name: opt
type: "choice" type: choice
params: params:
values: values: ["$|$", "-u origin HEAD", "--force", "--tags"]
- ""
- "--force"
- "--tags"
- name: "remote_branch"
type: "choice"
params:
values:
- ""
- "origin main"
- "origin master"
- "origin HEAD"
- "origin development"
replace: "git push {{option}} {{remote_branch}}"
# Git pull - trigger: "}gpl"
- trigger: "}gitpl" replace: "git pull {{opt}}"
#replace: "git pull $1$ $2$"
vars: vars:
- name: "option" - name: opt
type: "choice" type: choice
params: params:
values: values: ["$|$", "--rebase", "origin main", "origin master"]
- ""
- "--rebase"
- name: "remote_branch"
type: "choice"
params:
values:
- ""
- "origin main"
- "origin master"
- "origin HEAD"
- "origin development"
replace: "git pull {{option}} {{remote_branch}}"
# Git fetch - trigger: "}gf"
- trigger: "}gitf" replace: "git fetch {{opt}}"
# replace: "git fetch $1$"
vars: vars:
- name: "remote" - name: opt
type: "choice" type: choice
params:
values: ["$|$", "--all", "origin"]
- trigger: "}gcl"
replace: "git clone $|$"
# === BRANCHING ===
- trigger: "}gco"
replace: "git checkout {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-b ", "main", "master", "-"]
- trigger: "}gb"
replace: "git branch {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-d ", "-D ", "-a", "-r", "-m "]
- trigger: "}gm"
replace: "git merge {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--no-ff ", "--squash ", "--abort"]
- trigger: "}gr"
replace: "git rebase {{opt}}"
vars:
- name: opt
type: choice
params: params:
values: values:
- "" [
- "origin" "$|$",
- "--all" "-i HEAD~3",
replace: "git fetch {{remote}}" "--abort",
"--continue",
"--skip",
"main",
"master",
]
# Git log - trigger: "}grem"
- trigger: "}gitlg" replace: "git remote {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["-v", "add origin ", "remove ", "set-url origin "]
# === HISTORY & DIFF ===
- trigger: "}gd"
replace: "git diff {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--staged", "HEAD~1", "--stat"]
- trigger: "}gl"
replace: "git log --oneline --graph --all" replace: "git log --oneline --graph --all"
# Git diff - trigger: "}gls"
- trigger: "}gitdf" replace: "git log --oneline -10"
#replace: "git diff $1$"
- trigger: "}gsh"
replace: "git show {{opt}}"
vars: vars:
- name: "option" - name: opt
type: "choice" type: choice
params: params:
values: values: ["HEAD", "HEAD~1", "$|$"]
- ""
- "--staged"
- "HEAD~1"
replace: "git diff {{option}}"
# Git checkout # === STASH ===
- trigger: "}gitco" - trigger: "}gst"
#replace: "git checkout $1$" replace: "git stash {{opt}}"
vars: vars:
- name: "what" - name: opt
type: "choice" type: choice
params: params:
values: values: ["$|$", 'push -m "', "pop", "list", "apply", "drop", "clear"]
- ""
- "-b "
- "-- "
- name: "target"
type: "choice"
params:
values:
- "$|$"
- "main"
- "master"
- "development"
replace: "git checkout {{what}}{{target}}"
# Git branch # === UNDO & RESET ===
- trigger: "}gitb" - trigger: "}gu"
#replace: "git branch $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- ""
- "-d "
- "-D "
- "-a"
- "-r"
- name: "branch"
type: "choice"
params:
values:
- "$|$"
- "feature/"
- "bugfix/"
- "hotfix/"
- "chore/"
- "test/"
replace: "git branch {{option}}{{branch}}"
# Git merge
- trigger: "}gitm"
#replace: "git merge $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- ""
- "--no-ff "
- "--squash "
- "--abort"
- name: "branch"
type: "choice"
params:
values:
- "$|$"
- "main"
- "master"
- "development"
replace: "git merge {{option}}{{branch}}"
# Git rebase
- trigger: "}gitr"
#replace: "git rebase $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- ""
- "-i "
- "--abort"
- "--continue"
- "--skip"
- name: "target"
type: "choice"
params:
values:
- "$|$"
- "main"
- "master"
- "HEAD~3"
- "development"
- "staging"
replace: "git rebase {{option}}{{target}}"
# Git stash
- trigger: "}gitsah"
#replace: "git stash $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- ""
- 'push -m "$|$"'
- "pop"
- "list"
- "drop"
- "apply"
- "--include-untracked"
replace: "git stash {{option}}"
# Git remote
- trigger: "}gitr"
#replace: "git remote $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- "-v"
- "add origin "
- "remove "
- name: "url"
type: "choice"
params:
values:
- "$|$"
- "https://github.com/user/repo.git"
replace: "git remote {{option}}{{url}}"
# Git reset
- trigger: "}gitrst"
#replace: "git reset $1$ $2$"
vars:
- name: "mode"
type: "choice"
params:
values:
- "--soft "
- "--hard "
- ""
- name: "target"
type: "choice"
params:
values:
- "HEAD~1"
- "HEAD~2"
- "HEAD~3"
- "$|$"
replace: "git reset {{mode}}{{target}}"
# Git clean
- trigger: "}gitcln"
#replace: "git clean -fd $1$"
vars:
- name: "dry"
type: "choice"
params:
values:
- ""
- "-n"
replace: "git clean -fd{{dry}}"
# Git show
- trigger: "}gitshow"
#replace: "git show $1$"
vars:
- name: "ref"
type: "choice"
params:
values:
- "HEAD"
- "HEAD~1"
- "$|$"
- "<commit-hash>"
replace: "git show {{ref}}"
# Git cherry-pick
- trigger: "}gitcp"
#replace: "git cherry-pick $1$"
vars:
- name: "option"
type: "choice"
params:
values:
- ""
- "-x "
- "--continue"
- "--abort"
- name: "commit"
type: "choice"
params:
values:
- "$|$"
- "<commit-hash>"
- "HEAD~1"
replace: "git cherry-pick {{option}}{{commit}}"
# Git revert
- trigger: "}gitrev"
#replace: "git revert $1$"
vars:
- name: "commit"
type: "choice"
params:
values:
- "HEAD"
- "HEAD~1"
- "$|$"
- "<commit-hash>"
replace: "git revert {{commit}}"
# Git bisect
- trigger: "}gitbst"
#replace: "git bisect $1$"
vars:
- name: "action"
type: "choice"
params:
values:
- "start"
- "good"
- "bad"
- "reset"
- "log"
replace: "git bisect {{action}}"
# Git blame
- trigger: "}gitblame"
#replace: "git blame $1$"
vars:
- name: "file"
type: "choice"
params:
values:
- "$|$"
- "<filename>"
replace: "git blame {{file}}"
# Git reflog
- trigger: "}gitrl"
#replace: "git reflog"
replace: "git reflog"
# Git config
- trigger: "}gitconf"
#replace: "git config --global $1$ $2$"
vars:
- name: "key"
type: "choice"
params:
values:
- "user.name"
- "user.email"
- "core.editor"
- "init.defaultBranch"
- name: "value"
type: "choice"
params:
values:
- "$|$"
- "Your Name"
- "your.email@example.com"
- "vim"
- "main"
replace: 'git config --global {{key}} "{{value}}"'
# === COMMIT MESSAGE CONVENTIONS ===
# Conventional Commits
- trigger: "}gitcc"
vars:
- name: "type"
type: "choice"
params:
values:
- "feat"
- "fix"
- "docs"
- "style"
- "refactor"
- "perf"
- "test"
- "chore"
- "revert"
- name: "scope"
type: "choice"
params:
values:
- ""
- "(auth)"
- "(api)"
- "(db)"
- "(ui)"
- "(cli)"
replace: "{{type}}{{scope}}: "
# Fix typo in commit
- trigger: "}gitfix"
replace: "fixup! $|$"
# Squash commit
- trigger: "}gitsquash"
replace: "squash! $|$"
# === BRANCH NAMING CONVENTIONS ===
# Release branch
- trigger: "}gitbr"
replace: "release/v$1$.$2$.$3$"
vars:
- name: "major"
type: "choice"
params:
values: ["0", "1", "2"]
- name: "minor"
type: "choice"
params:
values: ["0", "1", "2"]
- name: "patch"
type: "choice"
params:
values: ["0", "1", "2"]
# === TROUBLESHOOTING ===
# Discard local changes (CAREFUL!)
- trigger: "}gitdc"
replace: "git checkout -- $1$"
vars:
- name: "file"
type: "choice"
params:
values:
- "."
- "$|$"
- "<filename>"
# Undo last commit (keep changes)
- trigger: "}gitundo"
replace: "git reset --soft HEAD~1" replace: "git reset --soft HEAD~1"
# Undo last commit (discard changes) - trigger: "}guh"
- trigger: "}gitundohard"
replace: "git reset --hard HEAD~1" replace: "git reset --hard HEAD~1"
# Remove untracked files (CAREFUL!) - trigger: "}grst"
- trigger: "}gitrmuntracked" replace: "git reset {{mode}}"
vars:
- name: mode
type: choice
params:
values: ["--soft HEAD~1", "--hard HEAD~1", "HEAD ", "$|$"]
- trigger: "}gdc"
replace: "git checkout -- {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "."]
- trigger: "}gcln"
replace: "git clean -fd{{opt}}"
vars:
- name: opt
type: choice
params:
values: ["", " -n"]
- trigger: "}grm"
replace: "git clean -fd" replace: "git clean -fd"
# See what branch you're on # === CHERRY-PICK & REVERT ===
- trigger: "}gitcurrbranch" - trigger: "}gcp"
replace: "git cherry-pick {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-x ", "--continue", "--abort"]
- trigger: "}grv"
replace: "git revert {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["HEAD", "HEAD~1", "$|$"]
# === MISC ===
- trigger: "}gbl"
replace: "git blame $|$"
- trigger: "}grl"
replace: "git reflog"
- trigger: "}gbs"
replace: "git bisect {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["start", "good", "bad", "reset"]
- trigger: "}gcfg"
replace: 'git config --global {{key}} "{{val}}"'
vars:
- name: key
type: choice
params:
values:
["user.name", "user.email", "core.editor", "init.defaultBranch"]
- name: val
type: choice
params:
values: ["$|$", "vim", "main"]
# === COMMIT CONVENTIONS ===
- trigger: "}gcc"
replace: "{{type}}{{scope}}: "
vars:
- name: type
type: choice
params:
values:
[
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"chore",
]
- name: scope
type: choice
params:
values: ["", "(api)", "(ui)", "(db)", "(auth)", "(ci)"]
- trigger: "}gfix"
replace: "fixup! $|$"
- trigger: "}gsq"
replace: "squash! $|$"
# === BRANCH NAMES ===
- trigger: "}gbr"
replace: "release/v$|$"
- trigger: "}gcb"
replace: "git branch --show-current" replace: "git branch --show-current"
# List all branches with last commit - trigger: "}gbv"
- trigger: "}gitbrl"
replace: "git branch -vva" replace: "git branch -vva"
# Find deleted branches - trigger: "}gbm"
- trigger: "}gitbrd" replace: 'git branch --merged | egrep -v "(^\\*|main|master|develop)"'
replace: "git branch --merged | egrep -v \"(^\\*|main|master|develop)\""
# === GITIGNORE === # === GITIGNORE ===
- trigger: "}gig"
replace: 'echo "$|$" >> .gitignore'
# Add to .gitignore - trigger: "}gign"
- trigger: "}gitignore" replace: |
replace: 'echo "$1$" >> .gitignore' node_modules/
.env
npm-debug.log
dist/
build/
# Common .gitignore entries - trigger: "}gipy"
- trigger: "}gitignode" replace: |
replace: "node_modules/\n.env\nnpm-debug.log" __pycache__/
*.pyc
.env
venv/
.venv/
*.egg-info/
- trigger: "}gitpython" - trigger: "}giid"
replace: "__pycache__/\n*.pyc\n.env\nvenv/\n.venv/\n*.egg-info/" replace: |
.idea/
*.iml
.vscode/
.DS_Store
- trigger: "}gitidea" - trigger: "}gibd"
replace: ".idea/\n*.iml\n.vscode/\n.DS_Store" replace: |
dist/
- trigger: "}gitbuild" build/
replace: "dist/\nbuild/\n*.o\n*.obj\n*.exe\n*.dll\n*.so\n*.dylib" *.o
*.obj
*.exe
*.dll
*.so
*.dylib

View File

@ -1,160 +1,154 @@
# SQL Snippets for Espanso # SQL snippets - trigger schema: }s<command>
# s = sql
matches: matches:
# Basic SELECT statement # === DML ===
- trigger: "}sqls" - trigger: "}ss"
replace: | replace: |
SELECT SELECT
[columns] $1$
FROM FROM
[table] $2$
[WHERE conditions] $3$;
[ORDER BY column]
[LIMIT n];
# SELECT with common clauses - trigger: "}ssa"
- trigger: "}sqlsel"
replace: | replace: |
SELECT SELECT
$1$ -- columns $1$ -- columns
FROM FROM
$2$ -- table $2$ -- table
$3$ -- optional: WHERE, GROUP BY, etc. $3$ -- WHERE, GROUP BY, etc.
$4$; -- optional: semicolon or other ending $4$; -- ORDER BY, LIMIT
# INSERT statement - trigger: "}si"
- trigger: "}sqli"
replace: | replace: |
INSERT INTO INSERT INTO
[table] ([columns]) $1$ ($2$)
VALUES VALUES
([values]); ($3$);
# UPDATE statement - trigger: "}su"
- trigger: "}sqlu"
replace: | replace: |
UPDATE UPDATE
[table] $1$
SET SET
[column] = [value] $2$ = $3$
[WHERE conditions]; WHERE
$4$;
# DELETE statement - trigger: "}sd"
- trigger: "}sqld"
replace: | replace: |
DELETE FROM DELETE FROM
[table] $1$
[WHERE conditions]; WHERE
$2$;
# CREATE TABLE # === DDL ===
- trigger: "}sqlct" - trigger: "}sc"
replace: | replace: |
CREATE TABLE [table] ( CREATE TABLE $1$ (
[column1] [type] [constraints], $2$ $3$ $4$,
[column2] [type] [constraints], $5$ $6$ $7$
...
); );
# Common WHERE clauses - trigger: "}sci"
- trigger: "}sqlw" replace: "CREATE INDEX $1$ ON $2$ ($3$);"
- trigger: "}sct"
replace: "CREATE TABLE $1$ ($2$);"
# === CLAUSES ===
- trigger: "}sw"
replace: | replace: |
WHERE WHERE
[conditions] $1$
# JOIN patterns - trigger: "}sj"
- trigger: "}sqlj"
replace: | replace: |
[table1] $1$ JOIN $2$
[JOIN_TYPE] JOIN [table2] ON $3$.$4$ = $5$.$6$
ON [table1].[key] = [table2].[key]
# Aggregate functions - trigger: "}so"
- trigger: "}sqlagg" replace: |
ORDER BY
$1$ $2$
- trigger: "}sg"
replace: | replace: |
SELECT
[GROUP_BY_COLUMN],
COUNT(*) as count,
SUM([numeric_column]) as total,
AVG([numeric_column]) as average,
MAX([column]) as max_value,
MIN([column]) as min_value
FROM
[table]
GROUP BY GROUP BY
[GROUP_BY_COLUMN] $1$
# Subquery pattern - trigger: "}sl"
- trigger: "}sqlsub" replace: "LIMIT $1$"
# === ADVANCED ===
- trigger: "}sa"
replace: | replace: |
SELECT SELECT
[columns] $1$,
COUNT(*) AS cnt,
SUM($2$) AS total,
AVG($3$) AS avg_val
FROM FROM
[table1] $4$
WHERE [column] IN ( GROUP BY
SELECT [column] $1$;
FROM [table2]
WHERE [conditions]
)
# Common SQL comments - trigger: "}ssq"
- trigger: "}sqlc"
replace: "-- $|$"
- trigger: "}sqlcb"
replace: "/* $|$ */"
# Transaction wrapper
- trigger: "}sqltr"
replace: | replace: |
BEGIN TRANSACTION;
$|$
COMMIT;
-- ROLLBACK; -- uncomment to rollback instead
# CTE (Common Table Expression)
- trigger: "}sqlcte"
replace: |
WITH [cte_name] AS (
SELECT SELECT
[columns] $1$
FROM FROM
[table] $2$
WHERE $3$ IN (
SELECT $4$
FROM $5$
WHERE $6$
);
- trigger: "}scte"
replace: |
WITH $1$ AS (
SELECT
$2$
FROM
$3$
WHERE WHERE
[conditions] $4$
) )
SELECT SELECT
[columns] $5$
FROM FROM
[cte_name]; $1$;
# CASE statement - trigger: "}scase"
- trigger: "}sqlcase"
replace: | replace: |
CASE CASE
WHEN [condition1] THEN [result1] WHEN $1$ THEN $2$
WHEN [condition2] THEN [result2] WHEN $3$ THEN $4$
ELSE [default_result] ELSE $5$
END as [alias] END AS $6$
# Window functions pattern - trigger: "}swin"
- trigger: "}sqlwin"
replace: | replace: |
SELECT $1$() OVER (
[columns], PARTITION BY $2$
[function]() OVER ( ORDER BY $3$
PARTITION BY [partition_column] ) AS $4$
ORDER BY [order_column]
[ROWS/RANGE frame]
) as [alias]
FROM
[table]
# Placeholders guide (use these in your templates): # === TRANSACTIONS ===
# [columns] - list of columns (comma-separated or *) - trigger: "}str"
# [table] - table name(s) replace: |
# [conditions] - WHERE clause conditions BEGIN;
# [JOIN_TYPE] - INNER, LEFT, RIGHT, FULL, CROSS
# [numeric_column] - column with numeric values for aggregates $1$
# [GROUP_BY_COLUMN] - column to group by
# $1$, $2$ etc. - tab stops (use Tab to navigate) COMMIT;
# $|$ - final cursor position -- ROLLBACK;
# === COMMENTS ===
- trigger: "}scmt"
replace: "-- $|$"
- trigger: "}scmb"
replace: "/* $|$ */"