跳转至

espanso 文本扩展工具

一句话概述:espanso 是跨平台的文本扩展工具,输入缩写自动替换为完整文本,省去重复打字,支持 Linux/macOS/Windows。

核心知识点

概念白话解释
espanso文本扩展器 = 输入缩写自动变长文本
Trigger触发词 = 你输入的缩写(如 :email
Replace替换内容 = 缩写展开后的完整文本
Match匹配规则 = 一条触发词→替换内容的规则
Package包 = 社区共享的规则集

安装配置

# Linux(Snap)
sudo snap install espanso --classic                    # Snap 安装

# Linux(源码 / AppImage)
# 从 https://espanso.org/install/ 下载

# macOS
brew install espanso                                   # Homebrew

# Windows
# 从官网下载安装包

# 启动
espanso start                                         # 启动后台服务
espanso status                                        # 查看状态

配置文件

# 配置文件位置:
# Linux:   ~/.config/espanso/match/base.yml
# macOS:   ~/Library/Application Support/espanso/match/base.yml
# 或运行: espanso path → 查看路径

# ~/.config/espanso/match/base.yml

matches:
  # 基本替换
  - trigger: ":email"                                  # 输入 :email
    replace: "pengwenqiang@example.com"                # 替换为邮箱

  - trigger: ":addr"                                   # 输入 :addr
    replace: "XX大学生命科学学院"                         # 替换为地址

  - trigger: ":sig"                                    # 输入 :sig
    replace: |                                         # 多行文本
      祝好!
      彭文强
      XX大学

  # 日期时间(动态变量)
  - trigger: ":date"                                   # 输入 :date
    replace: "{{today}}"                               # 替换为今天日期
    vars:
      - name: today
        type: date
        params:
          format: "%Y-%m-%d"                           # 格式:2026-05-13

  - trigger: ":now"                                    # 输入 :now
    replace: "{{time}}"
    vars:
      - name: time
        type: date
        params:
          format: "%Y-%m-%d %H:%M:%S"                  # 带时间

  # 生信常用
  - trigger: ":fas"                                    # FASTQ 质控命令
    replace: "fastp -i {{input}} -o clean_{{input}} -h report.html -j report.json"

  - trigger: ":conda"                                  # conda 激活
    replace: "conda activate {{env}}"
    vars:
      - name: env
        type: choice                                   # 弹出选择框
        params:
          values:
            - bioinfo
            - t2d_ml
            - qc_tools

  # 代码片段
  - trigger: ":pyhead"                                 # Python 文件头
    replace: |
      #!/usr/bin/env python3
      # -*- coding: utf-8 -*-
      """
      Description: {{description}}
      Author: 彭文强
      Date: {{today}}
      """

      import argparse
      import logging
    vars:
      - name: today
        type: date
        params:
          format: "%Y-%m-%d"
      - name: description
        type: echo
        params:
          echo: ""                                     # 需要手动填写

  # Shell 常用
  - trigger: ":shhead"                                 # Shell 脚本头
    replace: |
      #!/bin/bash
      set -euo pipefail                                # 严格模式
      # Description: {{clipboard}}
      # Author: 彭文强
      # Date: {{today}}
    vars:
      - name: today
        type: date
        params:
          format: "%Y-%m-%d"
      - name: clipboard
        type: clipboard                                # 粘贴剪贴板内容

安装社区包

# 浏览包:https://hub.espanso.org
espanso install all-emojis                             # 安装 emoji 包
espanso install lorem                                  # 安装 Lorem Ipsum 包

# 使用
# 输入 :joy: → 😂
# 输入 :lorem → 生成假文本

常见报错

报错原因解决
espanso 不触发服务未启动espanso start
YAML 解析错误缩进错误检查 YAML 缩进(用空格,不用 Tab)
权限问题(macOS)未授权辅助功能系统设置 → 隐私 → 辅助功能 → 勾选 espanso
权限问题(Linux)X11/Wayland 兼容检查 espanso 的 backend 设置

速查表

# 命令
espanso start                                         # 启动
espanso stop                                          # 停止
espanso restart                                       # 重启
espanso status                                        # 状态
espanso path                                          # 查看配置路径
espanso edit                                          # 编辑配置文件
espanso install <pkg>                                 # 安装社区包

# 变量类型
# date     → 日期时间
# clipboard → 剪贴板内容
# choice   → 弹出选择框
# echo     → 固定值
# shell    → 执行命令并使用输出
# random   → 随机值

# 触发词命名建议
# 用冒号开头::email :date :sig
# 分类前缀::bio-fastp :py-head :sh-loop