espansoで文字入力を快適に

1 min read読了の目安(約1400字

はじめに

2020/11 から始まった、ものづくりをする高校生のための新しい団体、Palettteが主催する Palettte Advent Calendar 2020 の9日目の記事です。

espansoとは

Rustで書かれているOSSのテキストエキスパンダーです。
公式サイト:https://espanso.org/

主な機能

  • Windows, Mac, Linux対応
  • 絵文字使用可能
  • シェルコマンドのサポート
  • カスタムスクリプトのサポート

使い方

configファイル(yml)に記述することで構成を追加します。
例えば以下のように記述した場合、:helloと入力するとworldに置き換えられます。

- trigger: ":hello"
  replace: "world"

変数の利用

espansoでは、置き換える文字列に変数を使用することができます。

- trigger: ":time"
  replace: "It's {{now}}"
  vars:
    - name: now
      type: date
      params:
        format: "%H:%M"

また、global_vars:を使用することでグローバル変数を定義することができます。

画像の貼り付け

image_path:を使用することで、テキストを画像に置き換えることができます。

- trigger: ":palettte"
    image_path: "/image/palettte.png"

クリップボードの利用/カーソル位置の指定

espansoではクリップボードを取得することができます。
また、$|$を入れることによって、テキストの置き換え後その位置にカーソルをおいた状態から入力することができます。

  - trigger: ":mdlink"
    replace: "[$|$]({{clipboard}})"
    vars:
      - name: "clipboard"
        type: "clipboard"

パッシブモード

パッシブモードでは、リアルタイムにテキストを変換するのではなく、入力後に選択した範囲を一気に変換することができます。
パッシブモードはdefault.ymlに以下の項目を追加し、変換範囲を選択してCTRLを二回押すことによって使用することができます。

enable_passive: true
passive_key: CTRL

引数

パッシブモードでは引数を使うことができます。

- trigger: ":hoge"
  replace: "hoge1=$0$, hoge2=$1$"
  passive_only: true

上記の設定では、:hoge/palettte/fofと入力したときhoge1=palettte, hoge2=fofと変換されます。

おわりに

espansoではこの記事で述べた機能以外にも沢山の機能が存在します。テンプレート化した文書を書くときや、Markdownの入力補助などに使うと非常に便利なので是非使ってみてください。