当前位置: 首页 > news >正文

x-cmd pkg | gum - 轻松构建美观实用的终端界面,解锁命令行新玩法

目录

    • 简介
    • 快速上手
      • 安装
      • 使用
    • 功能特点
    • 竞品和相关作品
    • 进一步探索

简介

gum 是由 Charm 团队于 2022 年使用 Go 开发的终端 UI 组件工具箱,能帮用户在终端中快速构建交互式 TUI 界面(如表单、菜单、提示框等),简化命令行应用程序的开发。

相比于同类工具,gum 容易上手,且设计更加美观、现代化,能在 Linux、macOS、Windows 等主流操作系统上运行,适合想在脚本中添加交互表单、配置向导、信息提示等交互界面的用户

在这里插入图片描述

快速上手

安装

eval "$(curl https://get.x-cmd.com)"        # 安装 x-cmd
x env use gum                               # 使用 x-cmd 安装 gum

使用

  1. 美化文本或用于生成 log 日志:

    # 为文本添加颜色或边框
    gum style --border normal --foreground 212 'Hello world!'
    gum style --border normal --border-foreground 30 "Hello, there! Welcome to $(gum style --italic --foreground 99 'x-cmd')."# 生成 log 日志
    gum log -s -t ansic -l error "Unable to create file." name file.txt
    
  2. 构建输入框:

    gum input --placeholder "Summary of this change"# 适合长文本的输出框
    gum write --placeholder "Details of this change"
    
  3. 构建选项对话框:

    # 操作确认框
    gum confirm "Is the game over?"# 文件选择框
    gum file --directory -a --height 5 "$HOME"# 选项列表
    gum choose --no-limit 'red' 'blue' 'green'
    printf "%s\n" 'red' 'blue' 'green' 'yellow' 'orange' | gum filter --prompt "color: "
    

功能特点

  1. 开箱即用:无需任何配置即可使用,简单易上手。
  2. 组件多样:提供输入框、选择框、确认框、文件筛选、分页阅读器、旋转加载器等多种组件,能应对绝大部分场景。
  3. 定制化:支持通过命令行参数调整组件的颜色、样式、功能,以满足定制化需求。

竞品和相关作品

  1. dialog:于 1994 年发布的终端 UI 组件工具箱,用于在终端中创建文本用户界面。它基于 curses/ncurses 库,支持多种类型的对话框,如输入框、菜单、消息框和确认框。
  2. whiptail:类似于 dialog,首次发布于 1998 年,兼容 dialog,更加轻量。

进一步探索

  • gum 源代码 - gum 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 gum 和参与社区贡献。
  • gum 使用示例 - 由官方提供的一系列应用场景。

更多内容请查阅 : pkg/gum

转载请标明原文链接 :https://www.x-cmd.com/pkg/gum

http://www.lryc.cn/news/478428.html

相关文章:

  • WMS系统打通仓储全链条数据势在必行,该如何做呢
  • 基于Python的校园爱心帮扶管理系统
  • 如何基于pdf2image实现pdf批量转换为图片
  • Tomcat(1) 什么是Tomcat?
  • 商务礼仪与职场沟通
  • C语言必做30道练习题
  • Linux信号_信号的产生
  • 数据库基础(7) . DML-基本操作
  • windows运行ffmpeg的脚本报错:av_ts2str、av_ts2timestr、av_err2str => E0029 C4576
  • [mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关
  • Github 2024-11-07 Go开源项目日报 Top10
  • 【黑盒测试】等价类划分法及实例
  • LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)
  • SQLite数据库是什么?DB Browser for SQLite是什么?
  • 核心概念解析Caffeine 缓存模型与策略
  • ubuntu 22.04 防火墙
  • 【数据结构-合法括号字符串】力扣678. 有效的括号字符串
  • ThreadX在STM32上的移植:F1,F4通用启动文件tx_initialize_low_level.s
  • 【算法】递归+深搜:814.二叉树剪枝
  • spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复
  • ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)
  • Node.js——fs模块-文件重命名和移动
  • vue2.0版本引入Element-ui问题解决
  • qt QTableView详解
  • 将Notepad++添加到右键菜单【一招实现】
  • Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律
  • 在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
  • ReactPress系列—Next.js 的动态路由使用介绍
  • DevOps业务价值流:需求设计最佳实践
  • A15基于Spring Boot的宠物爱心组织管理系统的设计与实现