Go每日一库之172:go-prompt

news/发布时间2024/8/25 5:52:51

简介

受python提示工具包的启发,在Go中构建强大的交互式提示

一、代码示例

package mainimport ("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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.liansuoyi.cn/news/72541653.html

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

SpringCloud

目录Springcloud介绍注册中心(Eureka)背景注册中心案例总结负载均衡(Ribbon)测试使用负载均衡RibbonRibbon负载均衡流程Ribbon的IRule常见负载均衡策略Ribbon的使用方法远程调用(Open Feign)Feign使用连接池注册中心(Nacos)测试配置集群命名空间Nacos非临时实例配置中心(Nacos)…

RedisInsight安装及使用

前言 RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)。 RedisInsight 提供的功能:唯一支持 Redis Cluster 的…

函数基础和函数参数

第一部分:函数基础 函数的作用意义:1.为了更好地管理代码,可能对应的代码块需要重复多次使用,所以通过一个函数封装起来,便于下次直接调用2.方法实际上是通过函数实现的 例1:# type() # 内置函数 def lis():li=[1,2,3]li.append(4)li.pop(2) # 指定删除# print(li) # …

06. 系统滴答定时器

一、SysTick定时器简介SysTick,即系统滴答定时器,是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,SysTick 的时钟源自 HCLK。当计数值减到 0 时,将从 RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在 SysTick…

【Qt6】列表模型——树形列表

QStandardItemModel 类作为标准模型,主打“类型通用”,前一篇水文中,老周还没提到树形结构的列表,本篇咱们就好好探讨一下这货。 还是老办法,咱们先做示例,然后再聊知识点。下面这个例子,使用 QTreeView 组件来显示数据,使用的列表模型比较简单,只有一列。#include &l…

QT QPixmap QImage内存泄漏

无论是在代码中还是在UI中设置icon都会产生内存泄漏 大概看了下,好像是QPixmap的data_ptr的引用计数,到不了1/0(查看引用计数,释放后,理论上应回到1) 试了下,仅以下两种方式不会产生内存泄漏: 1、从 XPM加载: img = QPixmap(result); //result为 static const cha…

抽象CurrentUser适配Http和Job场景

前言 获取当前请求用户的基础信息是很常见的,诸如当前用户Id,角色,有无访问权限等。通常我们可以直接使用HttpContext.User来拿到当前经过认证后的请求人信息。但是这样对于分层应用不太友好,需要安装AspNetCore.Http.Abstractions的包,这样对于这层(非Web层)来讲也有所侵…

使用 AI 编程助手 CodeWhisperer,开发如有神助

前段时间体验了chatGPT,听说它可以写代码,结果发现更多的只是一个对答写小作文的百度助手,虽然也能写代码,但不是我想要的,可以在 idea 中可以快速生成代码块的。一个偶然的机会,从微信群里了解到,由亚马逊云科技推出的 CodeWishPerer 开发插件,可以在多个开发环境中使…

向日葵安装教程

1、官网下载 2、执行安装1、官网下载 向日葵远程桌面连接,监控,维护,管理,客服支持解决方案-贝锐向日葵远程控制管理软件 (oray.com) 2、执行安装 安装后界面 完美。

读高性能MySQL(第4版)笔记17_复制(下)

复制1. 复制切换 1.1. 复制是高可用性的基础 1.1.1. 总是保留一份持续更新的副本数据,会让灾难恢复更简单 1.2. “切换副本”(promoting a replica)和“故障切换”(failing over)是同义词 1.2.1. 意味着源服务器不再接收写入,并将副本提升为新的源服务器 1.3. 计划内切换…

SOC芯片架构技术分析(二)

SOC芯片架构技术分析(二) 2.1 SoC产业链概况2.2 产业链上游概况:设计工具寡头竞争2.2 产业链上游概况:IP核行业行业集中度高1)行业集中度高,国内厂商市占率较低。 2)全球IP核供应商以国外厂商为主,行业集中度相对 较高:国内集成电路设计企业所需的IP核大多来自 境外供…

npm install 报-4048错误

报错原因:有缓存 权限不够 有三种解决方法: 第一种:找到.npmrc文件并删除 在 C:\Users\自己用户的文件夹\ 下找到 .npmrc 文件并删除 注意:这个文件是隐藏的,需要显示隐藏才能看见 第二种方法:直接用命令清理 在控制台上输出 npm cache clean --force 一样可以删除 第三…

Applescript实现无痕检测手机号或邮箱号是否注册iMessage服务,iMessage蓝号检测实现

一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制…

软件工程第三次作业——结对编程

21计科3班 3121005231 王嘉宸 21计科4班 3121005140 邱彦翔前期准备 需求分析 使用 MoSCoW 方法进行需求分析。 Must Have算术题生成器:设:自然数或真分数 $n$ : $0, 1, 2, \cdots$ , $1/2, 1/3, 2/3, \cdots$;运算符 $op$ : $+, -, \times, \div$ ;括号 : $(, )$ ;等号 …

清缓存命令

查看缓存free -m清缓存echo 3 > /proc/sys/vm/drop_caches 清缓存后 #释放物理页缓存 echo 1 > /proc/sys/vm/drop_caches #释放可回收的slab对象,包含inode and dentry echo 2 > /proc/sys/vm/drop_caches #同时释放 页、目录、索引节点缓存: echo 3 > /proc/s…

R语言广义相加(加性)模型(GAMs)与光滑函数可视化|附代码数据

原文链接:http://tecdat.cn/?p=23509 原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于GAMs的研究报告,包括一些图形和统计输出。 我们在研究工作中使用广义加性模型(GAMs)。mgcv软件包是一套优秀的软件,可以为非常大的数据集指定、拟合和可视化GAMs。 这篇文章…

实验1

1. 实验1 实验1_1源代码1 // 打印一个字符小人2 3 #include <stdio.h>4 int main() 5 {6 printf(" O \n");7 printf("<H>\n");8 printf("I I\n");9 10 return 0; 11 } 实验1_1运行结果截图 2. 实验23. 实验3

chapter 7 文件操作chapter 8 使用系统调研进行文件操作

chapter 7 文件操作&chapter 8 使用系统调研进行文件操作 7.1 文件操作 文件操作由五个层次构成,从低到高,如下图所示。 7.1.1 硬件级别 硬件级别的文件操作包括以下程序:fdisk:将硬盘、USB 或 SDC 驱动器分成分区。 mkfs:格式化磁盘分区以准备它们用于文件系统。 fsc…

.NET周刊【9月第3期 2023-09-17】

国内文章 在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性 https://www.cnblogs.com/shanyou/p/17698428.html 从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月13日发布了 .NET 8 RC 1: https://devblogs.microsoft.com/dotnet/announcing-…
推荐文章