使用 tmux 和 Git 自定義我的 Linux 終端
我使用 GNOME 終端,主要是因為它是我的發行版的默認設置。但是我終端內遠非「默認值」。在我開始解釋如何自定義它之前,它現在是這個樣子:
![Moshe Zadka's terminal](/data/attachment/album/202007/25/102923ak3j6pqhmkfgfhpg.png "Moshe Zadka's terminal")
從底部開始
在上圖的底部,你可以看到我的綠色 tmux 欄。底部的 [3]
表示它是第三個終端:每個終端都運行自己的 tmux 會話。(我創建了一個新會話來放大字體,這樣可在截圖中更容易看到;這是它與其他終端之間的唯一區別。)
提示符看起來也很有趣,對吧?在提示符中塞入了太多信息後,我喜歡插上一個換行符,這樣一來,如果我想即興進行 shell 編程或編寫一個傳遞了五次的管道,也不會超出屏幕界限。這樣做的代價是簡單的命令序列(新建、複製、移動)會更快地滾動出我的屏幕。
行末是 阿列夫零 字元,它是最小的無窮基數。我希望內容行的結束很明顯,並且當我意識到「阿列夫」和下標 0 都是 Unicode 字元時,我無法抗拒使用「阿列夫零」作為提示符的一部分的誘惑。(數學極客們,團結起來!)
在此之前是我的用戶名。由於我在不同用戶名的多台計算機上使用相同的點文件(保存在 Git 中),因此這個還算有用。
在我的用戶名之前,是我所在目錄的最後一部分。完整路徑通常太長且無用,而當前目錄對於像我這樣的經常忘記在做什麼人來說是很有用的。在此之前是機器的名稱。我所有的機器都以我喜歡的電視節目命名。我的舊筆記本是 mcgyver
。
提示符中的第一位是我最喜歡的:一個讓我知道目錄的 Git 狀態的字母。如果目錄為「不在 Git 中」,那麼是 G
。如果目錄為「沒有問題」(OK),且無需任何操作,那麼是 K
。如果有 Git 未知的文件需要添加或忽略,那麼是 !
。如果需要提交,那麼是 C
。如果沒有上游,那麼是 U
。如果存在上游,但我沒有推送,那麼是 P
。該方案不是基於當前狀態,而是描述了我要做的下一個動作。(要回顧 Git 術語,請閱讀本文。)
終端功能是通過一個有趣的 Python 程序完成的。它運行 python -m howsit
(在我把 howsit 安裝在虛擬環境中之後)。
你可以在上圖中看到渲染效果,但是為了完整起見,這是我的 PS1
:
[$(~/.virtualenvs/howsit/bin/python -m howsit)]h:W u ℵ₀
$
via: https://opensource.com/article/20/7/tmux-git
作者:Moshe Zadka 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive