Oh-My-Zsh 提示符只顯示當前路徑,不需要修改主題檔案

多玩我的世界盒子發表於2024-05-06

我真是服了。就這麼一個簡單的小問題我在網上找了一個多小時,一大堆 CSDN 文章都是抄 同一篇部落格 的教程,所有的部落格都要我去把 ~/.oh-my-zsh/themes/*.zsh-theme 檔案裡面的 PROMPT 變數改掉。這個方法確實可以奏效,所幸我是隻用 Gruvbox,萬一我要是使用隨機配色方案,每個 theme 都改一遍不得改到地老天荒?

還有人說在 .zshrc 裡面修改 $PROMPT 變數的。親測這種方法只能用於沒有安裝外掛的 Zsh 而並不適用於 Oh-My-Zsh。

這篇部落格園文章 iTerm 中 oh my zsh 主題去掉 git 目錄多級顯示 好不容易提及了重點,又被搜尋引擎打到地底下下去了,我愣是翻了三五頁搜尋內容才找到。

最後實在沒有辦法,一直找到 GitHub 原倉庫的 issue 下面才找到解決問題的方法。

解決方案

方案來自 ahmed-hdeawy

  1. 使用任何文字編輯器開啟 ~/.zshrc 檔案,比如 vim ~/.zshrc

  2. 跳轉到檔案結尾

黏貼如下函式:

prompt_dir() {
  prompt_segment blue $CURRENT_FG '%c'
}

在上述函式中,%c 代表的即是當前的路徑。根據 ruimartinsptl 給出的方案,可以用下面的函式顯示“上三級目錄”:

prompt_dir() {
  prompt_segment blue $CURRENT_FG '%3~'
}

%3~ 中的數字換成幾就顯示幾級目錄。

$PWD 的尾部組成部分。% 後面可以跟一個整數,用來獲取多個組成部分。除非使用了 %C,否則首先執行波浪線縮寫(即路徑中的 ~ 替換)。這些用法已經被棄用,因為 %c%C 分別等同於 %1~%1/,而顯式的正整數對於後兩個序列的效果是相同的。

這段話翻自 zshmisc(1) - Linux man page

相關文章