espanso + VSCodeで置換動作がおかしい件の解決方法

espanso + VSCodeで置換動作がおかしい件の解決方法

なにかが干渉している

テキスト入力におけるパワフルツール、espansoを日々いくつもの環境で愛用しています。それがいつ頃からか、Visual Studio Code (以下VSCode) 上で妙な挙動をするようになり悲しかったのですが、念願叶って解決できたのでメモです。

妙な挙動とは、「:espanso」が「Hi there!」ではなく「:espansoH」に、「:date」が「2024-04-30」ではなく「:date2024-」に置換されるような挙動です。発生条件はこの3つが重なっているときのような感じです。

  1. UbuntuまたはmacOS上のVSCodeで (Windowsでは未確認)
  2. 拡張機能「Markdown All in One」を導入していて
  3. markdownファイルを編集している時?

解決方法

espansoがすでに動作中の環境にて。

  1. VSCodeのエディタ画面のどこかで「#detect#」と入力する
  2. espansoのウィンドウが現れ、アプリケーション情報が表示される
    • Ubuntuの場合:
      title: '● 2024-04-30.md - content - Visual Studio Code'
      exec: '/usr/share/code/code'
      class: 'Code'
      
    • macOSの場合:
      title: '2024-04-30.md — content'
      exec: '/Applications/Visual Studio Code.app'
      class: 'com.microsoft.VSCode'
      
  3. コマンドライン上でespanso pathを実行して設定ファイルのpathを確認する (以降の$CONFIGに当てはめる)
  4. espansoの設定ファイル$CONFIG/config/vscode.ymlを新規作成して次の内容を保存する。内容は、VSCodeをclassで指定し、espansoのbackendの動作モードをVSCodeの上では (デフォルトの「auto」ではなく) 「clipboard」にせよ、というもの。当環境ではOS間で設定ファイルを共有しているので各OSでのVSCodeのclassをOR指定している
    # VSCode (Ubuntu, macOS)
    filter_class: "^Code$|^com.microsoft.VSCode$"
    backend: clipboard
    
  5. espansoが設定ファイルを自動的に再読み込みする
  6. VSCodeのエディタ画面で「:date」を入力すると意図通り「2024-04-30」に置換されることを確認する

参考リンク