PhraseExpressはATOKと相性が悪いらしいので、PhraseExpressは避けてEspansoにした

Google日本語入力の使いやすさをATOKから変更して検証したよ | ヨッセンス

Espansoのダウンロード

Espansoの設置

  • WindowsのスタートアップにEspansoへのショートカットを置いておき、Windows起動時にEspansoを立ち上げるようにする。
C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Espansoの使い方|[:hugo]

  • 任意の場所で[:hugo]と打てば、以下のようなものが、クリップボードに入力されるので、手動で貼り付ける。
  • [:hugo]などのトリガーは、「Espansoの置換ファイル|*.yml|[UTF8〔BOMなし〕][CR+LF]」で指定する。
  • WZ EDITORだと、以下のような文字列が、別の意味に解釈されてしまい、エラーが出るため、いったんクリップボードに読み込むようにしてある。
+++
date = "2025-05-18T22:52:52+09:00"
slug = "2025-05-18-22-52-52-09-00"
categories = ["●●●カテゴリー"]
tags = ["●●●タグ"]
title = "●●●タイトル"
+++

## ●●●タイトル

Espansoの使い方|[:today][:Today]

  • 任意の場所で[:today][:Today]と打てば、その場で置換される。
  • [:today][:Today]などのトリガーは、「Espansoの置換ファイル|*.yml|[UTF8〔BOMなし〕][CR+LF]」で指定する。

EspansoがRustで書かれていることは、HugoがGoで書かれているのとパラレルである

  • chrono::format::strftime - Rust
    • Espansoは内部的にRustで書かれており、日付や時刻の書式指定にこのchronoライブラリの記法を利用している。
    • Espansoのformatパラメータの仕様は、このchronoのドキュメントに準じている。

Espansoの日時にかんする記法

local date formats · Issue #156 · espanso/espanso
Extensions | Espanso

Espansoの基本など

Matches Basics | Espanso
Extensions | Espanso
Organizing matches | Espanso

Espansoの置換ファイル|*.yml|[UTF8〔BOMなし〕][CR+LF]

「Espansoの置換ファイル|*.yml|[UTF8〔BOMなし〕][CR+LF]」の設置場所

C:\Drawers\Freeware\Writing\Espanso\espanso-portable\.espanso\match
C:\Drawers\Freeware\Writing\Espanso>tree
フォルダー パスの一覧
ボリューム シリアル番号は 4438-2F16 です
C:.
└─espanso-portable
    ├─.espanso
    │  ├─config
    │  └─match
    │      └─packages
    └─.espanso-runtime
        └─kvs

C:\Drawers\Freeware\Writing\Espanso>

「Espansoの置換ファイル|*.yml|[UTF8〔BOMなし〕][CR+LF]」の中身

# espanso マッチファイル
  
  # 詳しい説明については、公式ドキュメント(https://espanso.org/docs/)をご覧ください。
  
  # このファイルを使用して、espanso を使用するすべてのアプリケーションで使用できる基本マッチ(スニペット)を定義できます。
  
  # マッチとは置換ルールです。「トリガー」文字列を入力すると、
  # 「置換」文字列に置き換えられます。
  matches:
  
    - trigger: ":today"
      replace: "{{today}}"
      vars:
        - name: today
          type: date
          params:
            format: "%FT%T+09:00"
  
    - trigger: ":Today"
      replace: "{{Today}}"
      vars:
        - name: Today
          type: date
          params:
            format: "%F-%H-%M-%S-09-00"

    - trigger: ":hugo"
      replace: "{{hugo}}"
      vars:
        - name: hugo
          type: shell
          params:
            cmd: "cmd /c C:\\Drawers\\BatchScript\\GenClipHugo.bat"

    # And much more! For more information, visit the docs: https://espanso.org/docs/

Espansoのバッチファイル|*.bat|[UTF8〔BOMなし〕][CR+LF]|設置場所は任意〔*.ps1ファイルを参照する〕

@echo off
chcp 65001 > nul

powershell -NoProfile -ExecutionPolicy RemoteSigned -File "%~dp0GenClipHugo.ps1"

exit /b

EspansoのPowerShellスクリプト|*.ps1|[UTF8-B〔BOM付き〕][CR+LF]|設置場所は任意〔*.batファイルから参照される〕

$now = Get-Date -Format "yyyy-MM-ddTHH:mm:ss+09:00"
$slug = Get-Date -Format "yyyy-MM-dd-HH-mm-ss-09-00"

$hugoContent = @"
+++
date = "$now"
slug = "$slug"
categories = ["●●●カテゴリー"]
tags = ["●●●タグ"]
title = "●●●タイトル"
+++

## ●●●タイトル
"@

# すべての改行コードをCRLFに統一
$hugoContent = $hugoContent -replace "`r`n", "`n"   # いったんLFに統一
$hugoContent = $hugoContent -replace "`r", "`n"     # 残ったCRもLFに
$hugoContent = $hugoContent -replace "`n", "`r`n"   # 最終的にCRLFに

Set-Clipboard -Value $hugoContent