项目简介:silver
项目概览
silver 是一个跨多个 shell 的可定制提示工具,灵感来自 Agnoster 主题。它是一个类似 powerline 的提示符,由 Rust 完全重写,以提升运行速度。相比早期版本 bronze,silver 具备更高的性能表现。
工作原理
与大多数 shell 提示符不同,silver 并非使用 shell 脚本编写,而是采用 Rust 语言。当你运行 silver init
时,它会输出一段 shell 代码。这段代码负责设置你的左提示符和右提示符,分别调用 silver lprompt
和 silver rprompt
来显示实际的提示信息。
使用指南
虽然 silver 并不是用 shell 脚本编写,理论上可以兼容任何 shell,但目前支持的多种 shell 包括 Powershell、Bash、Zsh、Fish、Ion 和 Elvish 等。
图标使用
要想使用自定义图标(默认情况下是禁用的),用户需要修补字体或安装 Nerd Fonts 提供的预修补字体。
安装方法
-
源码安装:
- 安装并设置 Rust 环境。
- 运行命令
cargo install --git https://github.com/reujab/silver
。
-
预编译二进制文件安装:
- 从 GitHub releases 页面下载二进制文件。
- 将下载的文件添加到
PATH
环境变量中。
-
macOS 额外要求:
- 安装 Homebrew。
- 运行
brew install coreutils
和brew install openssl
。 - 在你的 shell 配置中添加
alias date="gdate"
。
配置文件
安装完成后,需要在以下路径创建 silver.toml
进行配置:
- Linux:
~/.config/silver/silver.toml
或$XDG_CONFIG_HOME/silver/silver.toml
- macOS:
~/Library/Preferences/rs.silver/silver.toml
在配置文件中,可以自定义提示符外观,比如:
[[left]]
name = "dir"
color.background = "blue"
color.foreground = "black"
[[left]]
name = "git"
color.background = "green"
color.foreground = "black"
[[right]]
name = "status"
color.background = "white"
color.foreground = "black"
[[right]]
name = "cmdtime"
color.background = "magenta"
color.foreground = "black"
[[right]]
name = "shell"
color.background = "green"
color.foreground = "black"
随后,需执行其引导代码:
- Bash: 在
~/.bashrc
中加入source <(silver init)
- Ion: 在
~/.config/ion/initrc
中加入eval $(silver init)
- Powershell: 执行
Invoke-Expression -Command $(silver init | Out-String)
- 其他 shell: 请参考对应的插件文档。
项目结构
silver 的代码组织包括多个文件夹和模块,其中:
src/
目录包含核心源代码文件。modules/
子目录下是各功能模块的源码,例如cmdtime.rs
、dir.rs
、git.rs
等。cli.rs
和config.rs
分别用于解析命令行参数和配置文件。- 其他相关文件如
init.bash
,init.ion
,init.ps1
等,含有不同 shell 的引导代码。
文档
项目的详细文档可以在 silver 的 Wiki 页面找到。通过这些文档,可以更深入地了解其功能模块和配置方式。