Go每日一库之172:go-prompt
简介
受python提示工具包的启发,在Go中构建强大的交互式提示
一、代码示例
package main
import (
"fmt"
"github.com/c-bata/go-prompt"
)
func completer(d prompt.Document) []prompt.Suggest {
s := []prompt.Suggest{
{Text: "users", Description: "Store the username and age"},
{Text: "articles", Description: "Store the article text posted by user"},
{Text: "comments", Description: "Store the text commented to articles"},
}
return prompt.FilterHasPrefix(s, d.GetWordBeforeCursor(), true)
}
func main() {
fmt.Println("Please select table.")
t := prompt.Input("> ", completer)
fmt.Println("You selected " + t)
}
二、使用go-prompt的项目
- c-bata/kube-prompt:一个交互式的kubernetes客户机,以用Go编写的auto-complete为特色。
- lancher/cli:rancher命令行界面(cli)是管理您的rancher服务器的统一工具
- kubicorn/kubicorn:Kubernetes的简单的云本地基础设施。
- cch123/asm-cli:基于unicorn和rasm2的交互式汇编语言shell(X86/X64)
- ktr0731/evans:更具表现力的通用gRPC客户端
- crushepixel/moshpit:一个Command-line数据拼接工具。
- last-ent/testy-go:testygo:一个易于测试的工具!
- tiagorlampert/CHAOS:允许生成有效负载和控制远程操作系统的PoC。
- abs-lang/abs:ABS是一种脚本语言,在终端上运行得最好。它试图将Python或Ruby等语言的优雅与Bash的便利结合起来。
- takashabe/btcli:btcli是Bigtable的CLI客户端。有很多读取选项和auto-completion。
- ysn2233/kafka-prompt:在现有kafka命令客户机上构建的交互式kafka-prompt(kafka-shell)
- fishi0x01/vsh:HashiCorp Vault交互式shell
- mstrYoda/docker-shell:docker的简单交互式提示
- c-bata/gh-prompt:一个交互式GitHub CLI,具有auto-complete。
- docker-slim/docker-slim:不要更改Docker容器映像中的任何内容,并将其缩小到30倍(对于编译语言,甚至更大),使其更安全!(免费和开源)
- rueyaa332266/ezcron:ezcron是一个CLI工具,可以帮助您更轻松地处理cron表达式。
- qsctl:qingstor对象存储的高级命令行工具。
三、特性
1. 强大的自动完成
2. 灵活的功能选项
3. 快捷键
Emacs-like默认情况下可以使用键盘快捷键(这些也是bashshell中的默认快捷键)。您可以自定义和展开这些快捷方式。
4. 历史记录
可以使用向上箭头和向下箭头浏览已执行命令的历史记录。
5. 跨平台支持
我们确认go-prompt在以下终端正常工作:
iTerm2 (macOS)
Terminal.app (macOS)
命令提示符(Windows)
gnome-terminal (Ubuntu)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具