Lua言語を利用して自由自在に機能を拡張することができる、Mac用の自動化ツール「Hammerspoon」。以前から存在するアプリですが、macOS SierraでKarabinerが使えない対策として、Hammerspoonを利用してホットキーのリマップを実現する方法が発表されたこともあり、最近さらに注目を集めています。
本日紹介する「Anycomplete」は、このHammerspoonの拡張です。GoogleのサジェストAPIを利用し、タイプした文字を自動的に補完する機能を搭載しています。
以下インストール&使用方法を説明します。
インストール
AnycompleteはHammerspoonの拡張なので、まずHammerspoonが動く状態にしておくことが必要です。その上で以下の手順でインストールします。
$ curl -sSL https://raw.githubusercontent.com/nathancahill/Anycomplete/master/install.sh | bash
または手動の場合は以下のように実行します。
$ git clone https://github.com/nathancahill/anycomplete.git ~/.hammerspoon/anycomplete
シェルスクリプトでインストールした場合、~/.hammerspoon/init.luaに以下のような設定が追加されます。
local anycomplete = require "anycomplete/anycomplete" anycomplete.registerDefaultBindings()
これで設定は完了です。Hammerspoonで設定ファイルをリロードすれば、Anycompleteが利用可能となります。
使用方法
Anycompleteには初期状態で「Ctrl+Opt+Cmd+G」というグローバルショートカットキーが割り当てられています。ショートカットキーをタイプすると以下のようなウィンドウがポップアップします。
適当にタイプすると、補完候補が一覧表示されます。「Cmd+1-9」や矢印キーで選択し「Cmd+C」でコピーすることができます。
まとめ
手元の環境では補完候補が表示されない場合もあり、すこし不安定な印象をうけました。とはいえHammerspoonの自由度の高さを実感できる拡張といえると思います。
ソースコードはHammerspoonの拡張を自力で作成したいと思っている方にとっても参考になることでしょう。