在 Linux 上使用 Starship 自定义你的 Bash 提示符

掌控你的提示符,并让你需要的所有信息触手可及。
28 位读者喜欢这篇文章。
Star Trek: inspiring people and their tech since 1964

公共领域

没有什么比我忘记在 Git 仓库中 git add 文件更让我恼火的了。 我在本地测试,提交并推送,结果发现它在持续集成阶段失败了。 更糟糕的是,我是在 main 分支上而不是特性分支上,并且不小心推送到了它。 最好的情况是,由于分支保护而失败,我需要做一些手术才能将更改转移到分支上。 更糟糕的是,我没有正确配置分支保护,我不小心直接推送到了 main

如果在提示符中直接提供这些信息,岂不是很好?

提示符中还有更多有用的信息。 虽然 Python 虚拟环境的名称在提示符中,但虚拟环境拥有的 Python 版本却不在。

可以仔细配置 PS1 环境变量以包含所有相关信息。 这可能会变得冗长、烦人,并且调试起来并不容易。

这就是 Starship 旨在解决的问题。

安装 Starship

Starship 的初始设置只需要两个步骤:安装并配置你的 shell 以使用它。 安装可以简单到

$ curl -fsSL https://starship.rs/install.sh

通读安装脚本以确保你了解它的作用,然后使其可执行并运行它

$ chmod +x install.sh
$ ./install.sh

网站上介绍了其他安装方法。 你可以在镜像构建步骤中开发虚拟机或容器。

配置 Starship

下一步是配置你的 shell 以使用它。 要将其作为一次性尝试,假设 shell 是 bashzsh,请运行以下命令

$ eval "$(starship init $(basename $SHELL))"

你的提示符会立即更改

localhost in myproject on  master
> 

如果你喜欢你所看到的,将 eval "$(starship init $(basename $SHELL))" 添加到 shell 的 rc 文件中,使其永久生效。

自定义 Starship

默认安装假设你可以安装“Nerd 字体”,例如 Fantasque Sans Mono。 特别是你需要一种字体,其中包含来自 Unicode“私有实现”部分的字形。

当控制终端时,这很好用,但有时终端不易于配置。 例如,当使用某些浏览器内的 shell 抽象时,配置浏览器字体可能并非易事。

代码点的最大使用者是 Git 集成,它使用特殊的自定义符号表示“分支”。 可以通过使用文件 ~/.config/starship.toml 配置 starship.rs 来禁用它。

通过配置 git_branch 部分的 format 变量来禁用分支符号

[git_branch]
format = "on [$branch]($style) "

关于 starship.rs 的优点之一是,更改配置会立即生效。 保存文件,按 Enter,看看字体是否看起来符合预期。

还可以配置提示符中不同部分的颜色。 例如,如果 Python 部分的亮黄色在白色背景上有点难以看清,你可以配置蓝色

[python]
style = "blue bold"

支持配置多种语言,包括 Go、.NET 和 JavaScript。 还支持显示命令持续时间(仅适用于超过阈值的命令)等等。

掌控

掌控你的提示符,并让你需要的所有信息触手可及。 安装 Starship,让它为你工作,并享受它!

标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
自 1998 年以来,Moshe 一直参与 Linux 社区,并在 Linux “安装聚会”中提供帮助。 自 1999 年以来,他一直在编写 Python 代码,并为核心 Python 解释器做出了贡献。 早在这些术语存在之前,Moshe 就一直担任 DevOps/SRE,非常关心软件可靠性、构建可重现性以及其他此类事情。

1 条评论

不错且实用的工具。 谢谢你的文章。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.