先上链接: https://github.com/werifu/complish
参数补全:你在 shell 里输入命令后,按 Tab 键可以给你列出的子命令或者参数候选项,如下图
非常知名的 CLI 一般都会自带补全,但是很多 CLI 开发者并不提供该 CLI 在各种 shell 下的补全,每次使用的时候如果忘记参数了又要重新执行 cmd --help
去看帮助,非常影响体验。能够简单地为所有 CLI 生成补全的话就可以解决这个问题,如上图的补全就是由 complish 实现的,croc 的作者并没有提供。
各个 shell ( bash 、zsh 、fish 、powershell )等都支持 completion 的语法,允许为命令增加自定义的参数补全,但是各家的语法并不相通,因此我只做了我用的 fish 版本,同时也相当于安利 fish 了吧: https://fishshell.com/😄
原理其实很简单,就是程序里靠执行 cmd --help
得到 help page 的文本,分析文本然后按 completion 语法去生成对应的 completion 脚本。然而难点在于 help page 并没有统一的规范,不同的框架、不同的语言都有不一样的写法,写出来的 help page 没有统一的严格结构,很难解析,因此 chatGPT 的出现真的是这个问题的救星,喂入 help page 的文本,生成一个该 help page 的结构化 json ,我就能很轻松地解析并生成补全文件。
我相信 chatGPT 拥有的 text to structure 的能力能很大程度改善生产生活的体验,这只是一个很小的应用场景
欢迎大家来使用体验!如果觉得好还请给个 ⭐️
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.