$ terminals _

Sheldon

Rust 编写的快速 Shell 插件管理器,支持 Zsh 和 Bash 的现代化方案

简介

Sheldon 是一个使用 Rust 编写的快速 Shell 插件管理器,支持 Zsh 和 Bash。与传统的 Shell 脚本实现的插件管理器不同,Sheldon 作为一个编译好的原生二进制程序运行,在插件解析、下载和生成加载脚本等环节都具有显著的性能优势。它通过 TOML 配置文件来声明式地管理插件,语法清晰直观。

Sheldon 的设计理念是将插件管理与 Shell 本身解耦。它不依赖任何特定 Shell 的特性来实现核心功能,而是生成一段标准的 Shell 脚本供你 source。这种架构让 Sheldon 能够同时支持 Zsh 和 Bash,并且未来可以轻松扩展到其他 Shell。对于追求性能和现代化工具链的用户来说,Sheldon 是值得尝试的插件管理方案。

安装

# 使用 Homebrew 安装
brew install sheldon

# 使用 Cargo 安装
cargo install sheldon --locked

# 初始化配置
sheldon init --shell zsh
# 或
sheldon init --shell bash

在 Shell 配置文件中加载:

# Zsh — ~/.zshrc
eval "$(sheldon source)"

# Bash — ~/.bashrc
eval "$(sheldon source)"

核心特性

  • Rust 性能: 原生二进制执行,插件解析和加载速度极快
  • TOML 配置: 声明式配置文件,语法清晰易于版本控制
  • 多来源支持: GitHub、Git URL、本地目录、远程脚本等多种插件来源
  • 模板系统: 灵活的模板系统控制插件如何被 source
  • 锁文件: 生成 lock 文件确保可重复安装
  • 跨 Shell: 单一工具管理 Zsh 和 Bash 的插件

使用方式

编辑配置文件 ~/.config/sheldon/plugins.toml

shell = "zsh"

# 从 GitHub 安装插件
[plugins.zsh-autosuggestions]
github = "zsh-users/zsh-autosuggestions"

[plugins.zsh-syntax-highlighting]
github = "zsh-users/zsh-syntax-highlighting"

[plugins.zsh-completions]
github = "zsh-users/zsh-completions"

# 从 Oh My Zsh 加载插件
[plugins.ohmyzsh-git]
github = "ohmyzsh/ohmyzsh"
dir = "plugins/git"
use = ["*.plugin.zsh"]

# 本地插件
[plugins.local-config]
local = "~/.zsh/custom"
use = ["*.zsh"]
# 常用命令
sheldon lock     # 生成/更新锁文件
sheldon source   # 输出加载脚本
sheldon add      # 添加插件
sheldon remove   # 移除插件
sheldon edit     # 编辑配置文件