省略形を入力すると対応した定型文に自動的に展開してくれるテキスト展開ツール。
macOSやWindows等、プラットフォーム毎に、さまざまなアプリが存在しますが、システムに密接に連携する必要があるため、クロスプラットフォームで動作するアプリは少ない印象があります。本日紹介する「espanso」はこのような従来の常識を打ち破る、Rustで書かれたマルチプラットフォーム対応のテキスト展開ツールです。
GPLライセンスの元開発が進められているオープンソースソフトで、Windows、macOS、Linux用の実行ファイルをダウンロードすることができます。
単に定型文を展開できるだけでなく、日付の展開や、フォーム機能、シェルスコマンドの呼び出しなど、高度な展開機能も実装されています。また設定はファイルに保存しているため、DropboxやGoogle Driveなどのクラウドストレージを使い、デバイス間で同期することもできます。
以下使用方法を説明します。
espansoの使用方法
公式サイトから実行ファイルをダウンロードします。macOS版は、Intel、M1版が存在しますので、自分が使っているMacに対応したものをダウンロードします。Beta版とLegacy版が存在しますが、ここではBeta版を選択しました。
初回実行時はセットアップ画面が表示されます。
▲「Start」をクリックします。
▲espansoを自動起動するかどうかを設定します。チェックを入れると自動起動します。
▲espansoをPATHに追加するかどうかを設定します。espansoはリッチなCLIインターフェイスを提供しているため、PATHに追加することが推奨されています。
▲最後にアクセシビリティの設定を行います。「Enable」をクリックしてアクセス許可を与えます。
セットアップが完了しメニューバーにアイコンが表示されれば準備完了です。
デフォルトでは以下の3つのスニペットが登録されており。例えば「:espanso」と入力すると「Hi there!」へ展開されます。「:date」と入力すると現在の日付「03/25/2022」などに変換されます。「:shell」と入力するとシェルコマンド「echo 'Hello from your shell'」の実行結果「Hello from your shell」へ展開されます。
espansoの設定
espansoの設定ファイルの構造は以下の通りです。
$CONFIG/ config/ default.yml match/ base.yml
$CONFIGはプラットフォームごと異なっています。
- Linux: $XDG_CONFIG_HOME/espanso (例: /home/user/.config/espanso)
- macOS: $HOME/Library/Application Support/espanso (例: /Users/user/Library/Application Support/espanso)
- Windows: {FOLDERID_RoamingAppData}\espanso (例: C:\Users\user\AppData\Roaming\espanso)
matchデイレクトリに存在するymlファイルは、espansoが何をすべきかを定義します。すなわちカスタムスニペットとアクション(別名マッチ)を設定し、match/base.ymlがその起点となるファイルとなります。デフォルトのbase.ymlは以下の通りになっています。
matches: # Simple text replacement - trigger: ":espanso" replace: "Hi there!" # NOTE: espanso uses YAML to define matches, so pay attention to the indentation! # But matches can also be dynamic: # Print the current date - trigger: ":date" replace: "{{mydate}}" vars: - name: mydate type: date params: format: "%m/%d/%Y" # Print the output of a shell command - trigger: ":shell" replace: "{{output}}" vars: - name: output type: shell params: cmd: "echo 'Hello from your shell'"
triggerが省略形で、replaceが展開後文字列であることがわかります。
configディレクトリに含まれるファイルは、espansoのパラメータやオプションを設定するものです。config/default.ymlがデフォルトの設定ファイルで、以下の通りの内容となっています。
# espanso configuration file # For a complete introduction, visit the official docs at: https://espanso.org/docs/ # You can use this file to define the global configuration options for espanso. # These are the parameters that will be used by default on every application, # but you can also override them on a per-application basis. # To make customization easier, this file contains some of the commonly used # parameters. Feel free to uncomment and tune them to fit your needs! # --- Toggle key # Customize the key used to disable and enable espanso (when double tapped) # Available options: CTRL, SHIFT, ALT, CMD, OFF # You can also specify the key variant, such as LEFT_CTRL, RIGHT_SHIFT, etc... # toggle_key: ALT # You can also disable the toggle key completely with # toggle_key: OFF # --- Injection Backend # Espanso supports multiple ways of injecting text into applications. Each of # them has its quirks, therefore you may want to change it if you are having problems. # By default, espanso uses the "Auto" backend which should work well in most cases, # but you may want to try the "Clipboard" or "Inject" backend in case of issues. # backend: Clipboard # --- Auto-restart # Enable/disable the config auto-reload after a file change is detected. # auto_restart: false # --- Clipboard threshold # Because injecting long texts char-by-char is a slow operation, espanso automatically # uses the clipboard if the text is longer than 'clipboard_threshold' characters. # clipboard_threshold: 100 # For a list of all the available options, visit the official docs at: https://espanso.org/docs/
例えば「hello」と入力すると「world」に展開するマッチを登録したい場合、match/base.ymlに以下の内容を追加します。
- trigger: "hello" replace: "world"
espansoにはGUIでスニペットを検索できる「検索バー」機能や、複数の入力を受け取ることができるフォーム機能、正規表現トリガー、変数など便利な機能が多数搭載されています。
詳細は公式ドキュメントで確認可能です。
espansoコマンドを使う
espansoの各種機能をターミナルから呼び出すこともできます。
$ espanso --help espanso 2.1.4-beta Federico Terzi A Privacy-first, Cross-platform Text Expander USAGE: espanso [FLAGS] [OPTIONS] [SUBCOMMAND] FLAGS: -h, --help Prints help information -v Sets the level of verbosity -V, --version Prints version information OPTIONS: --config_dirSpecify a custom path from which espanso should read the configuration --package_dir Specify a custom path for the espanso package directory --runtime_dir Specify a custom path for the espanso runtime directory SUBCOMMANDS: cmd Send a command to the espanso daemon. edit Shortcut to open the default text editor to edit config files env-path Add or remove the 'espanso' command from the PATH help Prints this message or the help of the given subcommand(s) install Install a package log Print the daemon logs. match List and execute matches from the CLI migrate Automatically migrate legacy config files to the new v2 format. package package-management commands path Prints all the espanso directory paths to easily locate configuration and matches. restart Restart the espanso service service A collection of commands to manage the Espanso service (for example, enabling auto-start on system boot). start Start espanso as a service status Check if the espanso daemon is running or not. stop Stop espanso service uninstall Remove a package workaround A collection of workarounds to solve some common problems.
例えば、デフォルトの設定ファイルを編集したい場合「edit」コマンドを使用します。
$ espanso edit
また自動起動を止めたい場合以下のコマンドを実行します。
$ espanso service unregister
まとめ
espansoはオープンソースのテキスト展開ツールです。オープンソースに魅力を感じる型や、Windows、macOS、Linuxといった複数のOSで同じテキスト展開ツールを使用したいという方に特におすすめのツールです。
タイトル | espanso | |
---|---|---|
公式サイト | https://espanso.org/ | |
ソフトアンテナ | https://softantenna.com/softwares/7688-espanso | |
説明 | Rustで書かれたマルチプラットフォーム対応のテキスト展開ツール。 |