• Go:交互式提示工具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)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

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

    小结

  • 相关阅读:
    微服务保护
    最小系统板 STM32入门,呼吸灯实现(STM32F103C6T6)
    [操作系统]1.概述
    美化异常traceback信息,提升调试效率的实用工具
    Java精品项目源码第46期商城博客管理系统
    4款实用的黑科技软件,白嫖党最爱,功能强大到离谱
    qt中json类
    Linux系统OpenSSH_9.7p1升级详细步骤
    基于微信小程序的在线商城设计(后台PHP)
    AIGC: 关于ChatGPT的提问方式和Prompt工程
  • 原文地址:https://blog.csdn.net/zhanggqianglovec/article/details/127986293