10 个版本
0.2.0 | 2019年10月25日 |
---|---|
0.1.9 | 2018年10月18日 |
0.1.8 | 2018年6月8日 |
0.1.7 | 2018年5月6日 |
0.1.1 | 2017年11月30日 |
在 开发工具 中排名 776
每月下载量 32
42KB
1K SLoC
- powerline-rs =powerline-rs= 是 [[https://github.com/b-ryan/powerline-shell][powerline-shell]] 的重写版,受 [[https://github.com/justjanne/powerline-go][powerline-go]] 启发。
注意: powerline-rs 处于某种程度的维护模式。我会尽量抽出时间来修复bug和添加新功能,但代码比较混乱,不幸的是我短期内不会修复它。它 /可能/ 会被重构以使其更加通用,并且可能读取配置文件来配置提示符,因为 Rust 语言非常适合快速应用,因为它不会隐式地复制大结构。但我不会实现这一点。至少现在不会。
/话虽如此,/ 我仍然在使用这个工具为自己的提示符,并且可能永远不会停止使用,所以请不要担心,这绝对不是一个死项目。
** 速度!我没有做过任何广泛的基准测试,但看起来即使是 =powerline-rs= 的调试版本也比 =powerline-go= 快大约 20 毫秒。Rust 语言非常适合快速应用,因为它不会隐式地复制大结构。
** 安装方法 我强烈建议使用 [[https://nixos.org/nix/][Nix 软件包管理器]] 安装 powerline-rs,它将默认为您获取所有必需的本地依赖项。
#+BEGIN_SRC sh nix-env -iA powerline-rs #+END_SRC
如果您更喜欢最新的 git 版本,可以使用以下方法
#+BEGIN_SRC sh nix-env -if https://gitlab.com/jD91mZM2/powerline-rs/-/archive/master.tar.gz #+END_SRC
然后将以下代码添加到您的 shell 中
- [[#bash][Bash]]
- [[#fish][Fish]]
- [[#ion][Ion]]
- [[#zsh][Zsh]]
** 其他安装选项 您也可以从 [[https://aur.archlinux.org/packages/powerline-rs/][非官方 AUR 软件包] 安装 powerline-rs。
如果您选择其他安装选项,不幸的是您将不得不自己获取所有本地依赖项。我已经尝试猜测大多数用户需要安装哪些依赖项来构建此软件,如果您发现以下矩阵过时,请随时更新。
| 配置 | 原生依赖 | 描述 | |-----------------------+---------------------+---------------------------------------------------| | 默认 | 所有以下内容 | | | --no-default-features | 以下内容都不包含 | | | --features chrono | 无 | 为 --shell bare
添加时间支持 | | --features flame | 无 | 添加一些性能基准测试。请不要使用此功能。 | | --features git2 | libgit2, libzip | 添加git支持 | | --features users | 无 | 为 --shell bare
添加用户名支持 |
显然,您还需要Rust。之后,您可以通过cargo安装powerline-rs。
#+BEGIN_SRC sh cargo install powerline-rs #+END_SRC
** 新增功能?默认模块已更改,不包含用户名和主机名。我觉得大多数人已经知道了它们。但您当然可以随时启用它!** 优化了什么?
- 通常只使用Rust。
- 使用 =libgit2= 而不是调用和解析 =git= 输出(感谢 [[https://github.com/tbodt][tbodt]] 建议这样做!)
- =libgit2= 可以在编译时禁用,如果您不打算使用git功能。
- 主题使用简单的 =key=value= 脚本。没有JSON开销或类似的内容。
- =powerline-rs= 的输出略小于我提到的两个替代方案。说实话,我不知道为什么。** 移除了什么?大部分针对特定服务的模块已被删除。我非常懒惰。欢迎提交pull请求。
此外,=jobs= 模块无法与 =--shell bare= 一起使用。
- 将其添加到您的shell中 ** Bash #+BEGIN_SRC sh prompt() { PS1="$(powerline-rs --shell bash $?)" } PROMPT_COMMAND=prompt #+END_SRC ** Zsh #+BEGIN_SRC sh prompt() { PS1="$(powerline-rs --shell zsh $?)" } precmd_functions+=(prompt) #+END_SRC ** Fish #+BEGIN_SRC sh function fish_prompt powerline-rs --shell bare $status end #+END_SRC ** Ion 由于ion现在禁止在函数中使用=$?= 作为新 [[https://gitlab.redox-os.org/redox-os/ion/merge_requests/807][命名空间系统]] 的副作用,我们无法显示成功状态。这当然最终会得到解决。
#+BEGIN_SRC sh fn PROMPT powerline-rs --shell bare end #+END_SRC
依赖项
~11MB
~270K SLoC