Figをインストールしてコマンド操作を自動補完で快適にする

FigはIDE開発環境のオートコンプリート機能のように、ターミナルでのコマンド入力時(CLI)に自動補完機能で入力候補を示してくれる便利ツールです。ここではFigのインストールから初期設定などを説明しています。

目的(このページで書いてある事)と動作環境

最終更新日:2022/8/25

Figは、ターミナルでコマンド操作(CLI)をする時に自動補完機能(オートコンプリート機能)を提供してくれる便利なツールです。IDE開発環境でプログラミングをする時に単語候補を提案してくれるコード補完機能がありますが、Figでもそれと同じような快適さをターミナル上で提供してくれます。
Figのコマンド操作の自動補完機能の例

Figの自動補完機能は、OS標準のコマンドだけでなく、git、docker、awscli、npmなどのコマンドでも有効です(公式サイトによると、2022/8/22時点で500以上のCLIツールをサポートしているとの事)。

Figの快適さは、ターミナルでコマンドをよく使う人だけでなく、まだコマンド操作に慣れていない初心者・入門者にも役に立つと思います。

このページでは、Figをインストールして使えるようにする初期設定などを説明しています。

■動作環境です。
macOS Big Sur(バージョン11.6.6)、ターミナルアプリ
*シェルは、bash,zshどちらでも。

Figのインストールと初回起動してセットアップまで

Figのインストール方法ですが、Figの公式サイトからdmgファイルをダウンロードしてインストールするか、ターミナル上でbrewコマンドでインストールできます。

どちらの方法でインストールしても良いと思いますが、私はbrew(caskオプション)でインストールしました。
(HomebrewのCaskについては、こちらのページの説明がわかりやすいです。)

$ brew install --cask fig
〜
==> Installing Cask fig
==> Moving App 'Fig.app' to '/Applications/Fig.app'
==> Linking Binary 'fig-darwin-universal' to '/usr/local/bin/fig'
  fig was successfully installed!

インストールできたら、Figを起動して初回セットアップをします。
figの起動はfigコマンドでできます(Spotlightからでも起動できます)。

$ fig

→ Launching Fig...

初回起動時のセットアップのウェルカム画面です。Setupボタンを押します。
Fig初回起動時のセットアップのウェルカム画面

Figを使うにはアクセシビリティ機能を介してMacOSにアクセスする必要があるようなのでその設定です。Enableボタンを押します。
FigのEnable Accessibility Permissionの設定

MacOSのセキュリティとプライバシーの設定ウインドウが開くので、Fig.appにチェックを入れてアクセス許可設定をします。
セキュリティとプライバシー画面でFigにアクセス許可設定

このあと、トラブルシューティングのTips、プライバシー&ポリシーの説明、テーマカスタマイズの説明画面が開くので、Continueボタンを押して進めていきます。

そして、最後にセットアップ完了画面が開いてメールアドレスの入力を求められます。
Figの初期セットアップ完了画面
"Fig is almost set up"と書いてあるから、もうセットアップは完了したかなと思ってメールアドレスの入力をしないでもいっかと思ったけどダメでした。ターミナルでコマンド入力を試してもFigの自動補完が機能しなかったので。

ですので、メールアドレスを入力して"Sign in without password"ボタンを押します。そうするとメールでFigのログインコードが届くので、そのコードを入力しました。これでFigの初回セットアップは完了です。

ターミナルが起動されて試しに適当なコマンドを入力したら、Figの自動補完機能(オートコンプリート機能)が使えるようになっていました!

ちなみにFigが現在起動中かどうかはmacOSの上部メニューバーを見ればわかります。メニューバーにFigのアイコンが表示されていればFigは起動中です。
macOSメニューバーにFigアイコンがあれば起動中

あとインストールしたFigのバージョン情報です。

$ fig -V
fig_cli 1.4.10

Figの停止と起動

Figが使用できるようになりましたが、オートコンプリート機能がちょっと邪魔でFigを停止したい場合、"fig quit"コマンドを実行するか、メニューバーのFigアイコンから"Quit Fig"を選択すれば停止できます。

$ fig quit

→ Quitting Fig...

そして再度Figを起動したい場合、figコマンドでできます(Spotlight検索からでも起動できます)。

VSCodeやPyCharmなどのIDE内のターミナルでもFigは使える

VSCode(Visual Studio Code)やPyCharm内のターミナルのコマンドでもFigの自動補完機能は使えました。
このページを見る限り、JetBrainsの他のIDE(IntelliJ IDEAやPhpStormなど)でも使えるみたいですね。
Fig now supports JetBrains IDEs

Figの設定環境を確認したり変更したりする

Figの現状の設定を確認したり、カスタマイズしたい場合は、"fig settings ~"コマンドでできます。

設定の一覧を確認します。

$ fig settings all
autocomplete.disable = false
autocomplete.theme = "dark"
何か設定を変更したい場合、key,value形式でできます。
$ fig settings [key] [value]
また、"fig settings"コマンドだけ実行すると、Figの設定画面が開くのでGUIで設定変更できます(macOS上部メニューバーのFigアイコンの"Settings"からでも設定画面は起動できる)。
Figの設定画面(カスタマイズウインドウ)

あと、"fig settings ~"コマンドのヘルプは-hオプションで見れます。

$ fig settings -h

SSH接続先のリモートマシン(Linuxサーバ)でもFigを使えるようにする

次に、FigをインストールしたmacOSのPCからSSH接続したリモートのLinuxサーバ上でもFigを使えるので、その方法について説明します。

SSH接続したリモートマシンのターミナル上で下記sourceコマンドを実行して、リモートマシンにFigをインストールします。
(*Ubuntu22.04の実行例です。シェルはbashとzshで試しています。)

$ source <(curl -Ls fig.io/install)
✔ Do you want fig to modify your shell config (you will have to manually do this otherwise)? · yes
これだけでリモートマシンのUbuntuでもFigを使えるようになりました!
(*ec2(AWS)のAmazon Linux2環境でも同様にFigを使えました。)

これでSSH接続先のリモートマシンでfigコマンドを実行できるようになりますが、リモートマシンで"fig quit"を実行してもFigを停止できないです。リモートマシンでのFigの起動/停止は、ローカルマシン側のmacOSのFigの起動/停止と連動します。なので、macOSのFigを停止すれば、リモートマシンのFigも停止して使えなくなります。

また、リモートマシンのFigをアンインストールしたい場合、リモートマシン上で"fig uninstall"を実行します。

$ fig uninstall
✔ Are you sure you want to uninstall Fig? · yes

Fig binary has been uninstalled
コマンド実行後に、一旦SSHログアウトして再度SSHログインしたらfigを使えなくなりました。

ちなみにFigの公式サイトに、SSH接続先のリモートマシンでの説明があります。
Autocomplete in SSH

このページでは、自分のローカルマシン(macOS)側で、SSHインテグレーションをインストールするコマンドを実行すると書いてありました。

$ fig integrations install ssh
Installed!
このコマンドを実行すると、~/.ssh/configファイルにこの3行が追記されます。
# Fig ssh integration. Keep at the bottom of this file.
Match all
  Include ~/.fig/ssh
反対にSSHインテグレーションをアンインストールすると、この3行は~/.ssh/configから削除されます。
$ fig integrations uninstall ssh
Uninstalled!

ローカルマシン側にSSHインテグレーションをインストールした状態で、リモートマシンにSSH接続した時に、ログイン時にエラーメッセージが出るようになりました。

$ ssh testhost
error: Invalid value "" for '<PID>': cannot parse integer from empty string
〜
エラーメッセージが出ても普通にSSHログインできるし、そのままsourceコマンドを実行してFigをインストールして使えるようにもなったので、特に問題があるとは感じなかったけど、SSHインテグレーションをインストールしなくてもリモートマシンでFigを使えたし、SSHインテグレーションを入れた時との違いはわからなかったし、そもそもSSHインテグレーションが何なのかや、ログイン時のエラーメッセージもちゃんと理解できなかったので、私はSSHインテグレーションは入れないでも良いかなと思いました、今の所はだけど…

SSH接続先のリモートマシンがCentOS7環境でも試そうとしたけど、sourceコマンドでFigをインストールしようとした時に、glibcのバージョンが古いというエラーが出てできませんでした。

$ source <(curl -Ls fig.io/install)
Outdated glibc version 2.17. On x86_64 machines fig requires at least glibc 2.23
If you would like support for this, please create a GitHub issue here: https://github.com/withfig/fig/issues/new/choose
glibcのバージョンは最低でも2.23以降でなければダメみたいです。私はここで諦めましたが、glibcのバージョンアップはシステムに色々と影響を与える可能性があると思うので慎重に行う必要があります。ですのでもし試す場合は自己責任でお願いします。

LinuxとWindowsのデスクトップ環境でFigを使いたい場合ですが、Coming very soon!と書いてあるので(2022/8/25時点)、そのうち使えるようになるかもしれません。
Installing Fig | Fig