Skip to main content
espanso

espanso #

Reference: Documentation - espanso - Cross-platform Text Expander written in Rust

Basics #

User profile path: ~/Library/Preferences/espanso/
Config file: ~/Library/Preferences/espanso/default.yml

To find out about this:

$ espanso path

Options #

word:true #

The difference introduced when using word: true option is that you will need to type an extra space before expanding. For example, if you write this in default.yml:

matches:
  - trigger: ":email"
    word: true
    replace: "example@example.com"

then you will result in example@example.com␣ ending with a space, which may not be recognised as a valid email address on some websites. Therefore, you may want to not to use the option.

propagate_case: true #

When the replacement is a word with different cases, preserves the trigger’s case.

The following trigger replaces “:btw” with “between”, “:Btw” with “Between”, and “:BTW” with “BETWEEN”:

  - trigger: ":btw"
    word: true
    propagate_case: true
    replace: "between"

$|$ #

Places the cursor after replacing. See #Quick LaTeX Maths.

Match Examples #

Reading Notes #

  - trigger: ":book"
    word: true
    replace: |
      ## Reading note

      - Time: {{mydate}}
      - Author:
      - Title:
      - Page:
      - Notes:      
    vars:
      - name: mydate
        type: date
        params:
          format: "%Y%m%d%H%M"

Quick Python Imports #

  - trigger: ":np"
    replace: "import numpy as np"
  - trigger: ":pd"
    replace: "import pandas as pd"
  - trigger: ":cp"
    replace: "import chaospy as cp"

Quick LaTeX Maths #

ref: How I’m able to take notes in mathematics lectures using LaTeX and Vim | Gilles Castel

  - trigger: ":mi"
    replace: "$$|$$"
  - trigger: ":mp"
    replace: |
      $$\begin{aligned}$|$ \end{aligned}$$      
  - trigger: ":lim"
    replace: |
      \lim_{n \to \infty}      
  - trigger: ":sum"
    replace: |
      \sum_{n=1}^{\infty}      

Credit: Fun with espanso - Share & showcase - Obsidian Forum

  - trigger: ":bc"
    word: true
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "echo `date -v -1d \"+[[%Y-%m-%d|<< Yesterday]]\"`' | '`date -v +1d \"+[[%Y-%m-%d|Tommorrow >>]]\"`"