你一定會(huì)喜歡的終端自動(dòng)補(bǔ)全工具 Fig
Fig 是一個(gè)可以在你的終端中添加自動(dòng)補(bǔ)全命令的提示工具,當(dāng)你在操作終端的時(shí)候,F(xiàn)ig 可以在你的終端中彈出子命令、選項(xiàng)和上下文相關(guān)的參數(shù)。Fig 并不是一個(gè)獨(dú)立的終端,而是與你現(xiàn)有的終端工具進(jìn)行集成。
現(xiàn)在已經(jīng)支持近300多種 CLI 工具的補(bǔ)全提示,比如 cd、git、docker、npm、yarn、kubectl、brew、aws 等等工具,而且我們還可以根據(jù)需求添加新的補(bǔ)全提示規(guī)范。
如果你使用了 Fig,我相信你一定會(huì)喜歡上它的。
安裝
要安裝 Fig 非常簡(jiǎn)單。在你的 mac 中使用下面方法進(jìn)行安裝即可。
- Homebrew: brew install fig。
- DMG: 直接從 fig.io 網(wǎng)站下載 DMG 安裝包。
Windows/Linux: 暫未開(kāi)放。
安裝完成后會(huì)有一個(gè)配置過(guò)程。
其中有一個(gè)不友好的地方是在配置最后需要使用郵箱注冊(cè)一個(gè)帳號(hào),而且該過(guò)程是需要代理的。
配置完成后就可以直接使用了,比如在 iterm 終端中使用 git 命令。
對(duì)我來(lái)說(shuō)平時(shí)使用 kubectl 最多,同樣也是支持的。
如果你經(jīng)常使用 VSCode 下面的終端,那么可能會(huì)經(jīng)常切換目錄,那么這個(gè)時(shí)候 Fig 一定就可以提高你的效率了,直接在下拉框中就可以選擇目錄了,非常高效。
Fig 的軟件中還有插件商店,不過(guò)還沒(méi)正式上線(xiàn),但是也能看出 Fig 官方接下來(lái)的路線(xiàn),插件功能必然會(huì)對(duì) Fig 提供更多的功能。
補(bǔ)全規(guī)范
補(bǔ)全規(guī)范是一個(gè)聲明性的 schema ,它可以為 CLI 工具指定子命令、選項(xiàng)和參數(shù),我們可以使用這些 schema 來(lái)生成建議。
下面是添加我們自己的補(bǔ)全規(guī)范的簡(jiǎn)單示例,首先需要有 Node.js 和 npm 環(huán)境。然后 Fork 項(xiàng)目 https://github.com/withfig/autocomplete。
創(chuàng)建自己的 fork 后,將 repo 克隆到本地:
git clone https://github.com/YOUR_GITHUB_USERNAME/autocomplete.git fig-autocomplete
然后將你的 fork 鏈接回 upstream repo,以便你可以獲取最新的代碼當(dāng)然也可以貢獻(xiàn)你的代碼:
cd fig-autocomplete
git remote add upstream https://github.com/withfig/autocomplete.git
然后你需要安裝相關(guān)依賴(lài):
npm install
接著可以運(yùn)行 create-spec 腳本來(lái)創(chuàng)建示例完成規(guī)范并將其命名為 abc:
npm run create-spec abc
create-spec 腳本將在你的默認(rèn)編輯器中自動(dòng)打開(kāi) ``./src/abc.ts`,可以看到如下所示的內(nèi)容:
const completionSpec: Fig.Spec = {
name: "abc",
description: "",
subcommands: [
{
name: "my_subcommand",
description: "Example subcommand",
subcommands: [
{
name: "my_nested_subcommand",
description: "Example nested subcommand",
},
],
},
],
options: [
{
name: ["-h", "--help"],
description: "Help for abc",
},
],
};
然后我們可以執(zhí)行 npm run dev 命令進(jìn)入開(kāi)發(fā)者模式,啟用此模式后,F(xiàn)ig 將在更新時(shí)自動(dòng)重新編譯 abc.ts(或任何其他規(guī)范),然后 Fig 會(huì)從你的開(kāi)發(fā)倉(cāng)庫(kù)中加載補(bǔ)全規(guī)范。
現(xiàn)在我們可以打開(kāi)一個(gè)新的終端窗口,輸入 abc 然后添加一個(gè)空格,你應(yīng)該會(huì)看到剛剛創(chuàng)建的補(bǔ)全規(guī)范出現(xiàn)了自動(dòng)補(bǔ)全提示功能。
關(guān)于 Fig 補(bǔ)全提示規(guī)范的更多用法可以參考官方文檔 https://fig.io/docs 了解更多。