Fig全面介绍

Fig是一个旨在提高命令行使用效率和协作性的工具。它提供了一系列功能。最近因为工作需要相对全面的了解了fig,因此这里mark下。

Update Fig >> Amazon

  1. 08/28/2023,Fig被Amazon收购,这也说明了Fig的价值。

    https://fig.io/blog/post/fig-joins-aws

  2. 当前Fig已sunset,官网下载Fig,也已经变成了CodeWhisperer。不过补全体验一致,主要是去掉了非补全的功能。

Fig支持平台

  1. 当前仅支持Mac

  2. Linux还在开发中,具体状态见

补全之外的其他功能

  1. Dotfiles
  2. Scripts

补全原理

  1. 传统的命令补全是安装在了目标机器上,而很多命令行工具安装时要么没有补全支持,要么就是支持的七零八落的。为此,Fig这种选择了在客户端解决,比如Fig安装后本质是在客户端加载了既定的话规范,通过提示让用户进一步选择对应的命令选项,回车后写入原终端。循环往复从而解决用户输入命令难的问题。因此这种方案优势就是快,当然也会耗费一定的性能和体积,因为用户的命令越多,需要加载的命令也就越多。
  2. Fig之所在能跨终端显示补全GUI
    • GUI本身是利用前端JS/HTML/CSS构建

    • 终端交互是利用Shell函数钩子+Accessibility定位+前端补全显示等结合实现的

Fig的一些资源

fig并非只有一个App,在几年时间里也贡献出了一套资源

  1. 补全规范

    App中加载的规范即是来自于这里,并且利用GitHub社区力量,持续在更新中。如果你想做一款补全工具,那么这里的规范直接就可以拿来使用,即Fig App也是这一堆规范的使用方

    https://github.com/withfig/autocomplete

  2. 补全规范脚手架

    https://github.com/withfig/autocomplete-tools

    比如想贡献规范,调试规范等,可以使用官方的补全工具。

  3. 命令手册

    想了解Fig收录有哪些命令,可以在这里查看

https://fig.io/manual

利用fig补全规范实现的产品

  1. Warp

  2. inshellisense

  3. XTerminal

写在最后

fig是个App,其最重要的是命令补全。

Fig最有价值的并非App,而是定下了一整套的补全规范协议,利用社区力量也贡献出了500+命令补全规范。如果是说subcommands,那就是28k(目前),所以很棒。而这或许就是能被Amazon收购的原因。

相关链接

  1. https://fig.io/blog
  2. https://github.com/withfig