用 Starship 定制你的 shell 提示符
沒(méi)有什么比我忘記在我的 Git 倉(cāng)庫(kù)中 git add 文件更讓我惱火的了。我在本地測(cè)試,提交,然后推送,卻發(fā)現(xiàn)在持續(xù)集成階段失敗了。更糟糕的是,我在 main 分支而不是特性分支上,并不小心推送到它。最好的情況是,因?yàn)榉种ПWo(hù)而失敗,我需要做一些操作才能把改動(dòng)推送到一個(gè)分支。更糟糕的是,我沒(méi)有正確配置分支保護(hù),不小心直接推送到了 main 分支。
如果這些信息能在提示中直接獲得,那不是很好嗎?
在提示符中甚至還有更多有用的信息。雖然 Python 虛擬環(huán)境的名稱在提示符中,但虛擬環(huán)境的 Python 版本卻不在提示符中。
可以仔細(xì)地將 PS1 環(huán)境變量配置為所有相關(guān)的信息。這可能會(huì)變得很長(zhǎng),很煩人,而且調(diào)試起來(lái)并不簡(jiǎn)單。
這就是 Starship 被設(shè)計(jì)來(lái)解決的問(wèn)題。
安裝 Starship
Starship 的初始設(shè)置只需要兩個(gè)步驟:安裝并配置你的 shell。安裝可以很簡(jiǎn)單:
$ curl -fsSL https://starship.rs/install.sh
閱讀安裝腳本,確保你理解它的作用,然后讓它可執(zhí)行并運(yùn)行它:
$ chmod +x install.sh
$ ./install.sh
還有其他的安裝方法,在其網(wǎng)站上有介紹。你可以在構(gòu)建鏡像的步驟中設(shè)置虛擬機(jī)或容器。
配置 Starship
下一步是配置你的 shell 來(lái)使用它。要一次性嘗試,假設(shè) shell 是 bash 或 zsh,請(qǐng)運(yùn)行以下命令:
$ eval "$(starship init $(basename $SHELL))"
你的提示符立即改變:
localhost in myproject on master
>
如果你喜歡你所看到的,把 eval "$(starship init $(basename $SHELL))" 添加到你的 shell 的 rc 文件中,使其永久化。
自定義 Starship
默認(rèn)安裝假定你可以安裝“電腦迷字體”,例如 Fantasque Sans Mono。 特別是,你需要一種帶有來(lái)自 Unicode 的“私有實(shí)現(xiàn)”部分的字形的字體。
這在控制終端時(shí)非常有效,但有時(shí),終端的配置并不容易。例如,當(dāng)使用一些瀏覽器內(nèi)的 shell 抽象時(shí),配置瀏覽器的字體可能是不太容易的。
該碼位的最大用戶是 Git 集成,它使用一個(gè)特殊的自定義符號(hào)來(lái)表示“分支”。禁用它可以通過(guò)使用文件 ~/.config/starship.toml 來(lái)配置 starship.rs。
禁用分支符號(hào)是通過(guò)配置 git_branch 部分的 format 變量完成的:
[git_branch]
format = "on [$branch]($style) "
starship.rs 的一個(gè)好處是,改變配置會(huì)立即生效。保存文件,按下回車(chē),看看字體是否符合預(yù)期。
還可以配置提示符中不同部分的顏色。例如,如果 Python 部分的亮黃色在白色背景上有點(diǎn)難看,你可以配置為藍(lán)色:
[python]
style = "blue bold"
許多語(yǔ)言都有配置支持,包括 Go、.NET 和 JavaScript。還支持顯示命令的持續(xù)時(shí)間(只針對(duì)耗時(shí)超過(guò)閾值的命令)等。
控制提示符
控制你的提示符,讓你需要的所有信息觸手可及。安裝 Starship,讓它為你工作,并享受吧!