V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
adoyle
V2EX  ›  分享创造

分享一个 shell 配置管理框架 one.bash

  •  
  •   adoyle ·
    adoyle-h · 2022-12-03 15:19:07 +08:00 · 2040 次点击
    这是一个创建于 719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近撸了一个 shell 配置管理框架,整合了我使用 shell 的多年经验。欢迎使用和反馈意见。

    https://github.com/one-bash/one.bash

    README 文档有中英双语版本。

    介绍

    一个优雅管理命令、shell 脚本,自动补全、配置的框架,适合 bash 玩家。

    功能

    • 集中管理一系列配置文件。使用 YAML 文件通过 dotbot 来管理软链接。
    • 通过模块管理 shell 脚本、补语、别名。支持自定义模块。
    • 通过 repo 轻松分享和重用可执行文件、子命令、配置和模块。
    • 支持自定义 repo 和多个 repo 。由 ONE_REPOS 管理。
    • 可以在一个作用域下管理自己的命令。如 a <cmd> 来调用命令,避免在 PATH 中重复命令。
    • 支持 one.bash 配置。
    • 支持 bash-it 。你可以使用 one 命令来管理 bash-it 的 aliases/completions/plugins 。
    • 支持 Fig 。
    3 条回复    2022-12-04 14:29:05 +08:00
    Showfom
        1
    Showfom  
       2022-12-03 16:27:23 +08:00
    支持一下,除了在服务器上用 Bash 本地还是习惯 zsh 了
    andyJado
        2
    andyJado  
       2022-12-04 11:18:08 +08:00
    我一直有这样一个困扰:

    我有很多 cli app, editor, pager, differ, window manager 等等, 它们都有各自的颜色配置. 有些会绕开终端配色, 有些则在终端配色的基础上捣大乱. 每次新下一个 cli 都要查文档调半天色儿.

    你这个框架能管理这些颜色配置吗?

    *目前的 workaround 是在把这些颜色配置集中在了一个 commit 通过 rebase -i 大法管理的.
    adoyle
        3
    adoyle  
    OP
       2022-12-04 14:29:05 +08:00   ❤️ 1
    @andyJado 这个框架只是管理文件用的,不干涉 cli app 自身的逻辑,所以不能管理颜色配置。

    > 有些会绕开终端配色, 有些则在终端配色的基础上捣大乱。

    我认为这是正常的。因为终端程序的配色设计没有标准规范,所以每个人的设计都不一样。你只能查文档调半天,我也觉得很麻烦。
    这也是有历史原因的。因为从 1978 年的终端 VT100 支持 ANSI Escape Codes 开始,一开始只支持 4-bit 的 16 种颜色。然后是 8-bit 的 256 色。到 2000 年以后才出现 24-bit 真彩色 (truecolor)。到近几年出现的各种色域规范,颜色配置将更加复杂,因为 RGB 值所代表的颜色也是不唯一的。
    而命令行程序自古就有,但程序如何配置颜色输出,这就需要有人去统一标准。从结果来看,并没有。

    这两个资料挺好的,推荐阅读。
    https://www.wikiwand.com/en/ANSI_color
    https://github.com/termstandard/colors
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:21 · PVG 00:21 · LAX 08:21 · JFK 11:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.