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)
}

每日一库之172:go-prompt-0

二、使用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)

posted @   larkwins  阅读(270)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示