Oh My Zsh 是一個開源、社群驅動的框架,用於管理您的 zsh 配置。
聽起來很無聊。讓我們再試一次。
Oh My Zsh 不會讓你成為 10 倍的開發者……但你可能會感覺像這樣。
一旦安裝,您的終端外殼將成為人們談論的話題,否則您將獲得退款!在命令提示字元中每次按鍵,您都將利用數百個強大的插件和漂亮的主題。陌生人會在咖啡館裡走過來問你: “太棒了!你是天才嗎?”
最後,你將開始得到你一直認為自己應得的關注。 ……或者您會利用節省下來的時間開始更頻繁地使用牙線。 ?
要了解更多信息,請訪問 ohmyz.sh,在 X(以前稱為 Twitter)上關注 @ohmyzsh,並加入我們的 Discord。
作業系統 | 地位 |
---|---|
安卓 | ✅ |
自由BSD | ✅ |
LCARS | ? |
Linux | ✅ |
macOS | ✅ |
OS/2 變形 | |
Windows(WSL2) | ✅ |
zsh --version
進行確認),請在此檢查以下 wiki 說明:安裝 ZSHcurl
或wget
git
(建議v2.4.11或更高版本)Oh My Zsh 是透過在終端機中執行以下命令之一來安裝的。您可以使用curl
、 wget
或其他類似工具透過命令列安裝它。
方法 | 命令 |
---|---|
捲曲 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
獲取 | sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
拿來 | sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
或者,安裝程式也鏡像到 GitHub 外部。如果您位於中國或印度(對於某些 ISP)等封鎖raw.githubusercontent.com
國家/地區,則可能需要使用此 URL:
方法 | 命令 |
---|---|
捲曲 | sh -c "$(curl -fsSL https://install.ohmyz.sh/)" |
獲取 | sh -c "$(wget -O- https://install.ohmyz.sh/)" |
拿來 | sh -c "$(fetch -o - https://install.ohmyz.sh/)" |
請注意,任何先前的.zshrc
將被重新命名為.zshrc.pre-oh-my-zsh
。安裝後,您可以將要保留的配置移至新的.zshrc
中。
檢查您還不知道的專案中的安裝腳本是個好主意。您可以透過先下載安裝腳本,瀏覽它以便一切看起來正常,然後運行它來做到這一點:
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh
如果上述 URL 逾時或失敗,您可能必須將該 URL 替換為https://install.ohmyz.sh
才能取得腳本。
Oh My Zsh 附帶了大量插件供您使用。您可以查看插件目錄和/或 wiki,以了解目前可用的內容。
一旦您發現想要與 Oh My Zsh 一起使用的一個(或多個)插件,您需要在.zshrc
檔案中啟用它們。您將在$HOME
目錄中找到 zshrc 檔案。使用您最喜歡的文字編輯器打開它,您將看到一個列出您要加載的所有插件的位置。
vi ~ /.zshrc
例如,這可能看起來像這樣:
plugins=(
git
bundler
dotenv
macos
rake
rbenv
ruby
)
請注意,插件由空格(空格、製表符、換行符...)分隔。請勿在它們之間使用逗號,否則會損壞。
每個內建插件都包含一個README ,對其進行記錄。此自述文件應顯示別名(如果插件添加了任何別名)以及該特定插件中包含的額外功能。
我們會承認的。在 Oh My Zsh 世界的早期,我們可能會對主題有點太高興了。我們現在捆綁了一百五十多個主題。其中大多數在 wiki 上都有螢幕截圖(我們正在努力更新!)。檢查一下!
Robby 的主題是預設主題。這不是最奇特的。這不是最簡單的。這正是(對他來說)正確的選擇。
找到想要使用的主題後,您將需要編輯~/.zshrc
檔案。您將在其中看到一個環境變數(全部大寫),如下所示:
ZSH_THEME= " robbyrussell "
要使用不同的主題,只需更改該值以匹配所需主題的名稱即可。例如:
ZSH_THEME= " agnoster " # (this is one of the fancy ones)
# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
筆記
您會多次看到 zsh 主題的螢幕截圖,並嘗試一下,然後發現它看起來與您不太一樣。
這是因為許多主題需要安裝 Powerline 字體或 Nerd 字體才能正確渲染。如果沒有它們,這些主題將呈現奇怪的提示符號。查看常見問題以獲取更多資訊。
另外,請注意主題僅控制提示的外觀。這是您在遊標之前或之後看到的文本,您可以在其中鍵入命令。主題不控制終端視窗的顏色(稱為配色方案)或終端的字體等內容。這些是您可以在終端模擬器中變更的設定。有關更多信息,請參閱什麼是 zsh 主題。
打開一個新的終端機窗口,您的提示符號應如下所示:
如果您沒有找到適合您需求的主題,請查看 wiki 以取得更多主題。
如果您感覺精力充沛,可以讓電腦在每次開啟新的終端視窗時為您隨機選擇一個。
ZSH_THEME= " random " # (...please let it be pie... please be some pie..)
如果您想從您最喜歡的主題清單中選擇隨機主題:
ZSH_THEME_RANDOM_CANDIDATES=(
" robbyrussell "
" agnoster "
)
如果您只知道不喜歡哪些主題,則可以將它們新增至忽略清單:
ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod)
如果您還有其他疑問或問題,您可以在我們的常見問題中找到解決方案。
如果您是那種喜歡親自動手的人,這些部分可能會引起共鳴。
某些使用者可能想要手動安裝 Oh My Zsh,或變更安裝程式接受的預設路徑或其他設定(這些設定也記錄在安裝腳本的頂部)。
預設位置是~/.oh-my-zsh
(隱藏在您的主目錄中,您可以使用cd ~/.oh-my-zsh
存取它)
如果您想要使用ZSH
環境變數變更安裝目錄,可以在安裝之前執行export ZSH=/your/path
,或在安裝管道結束之前設定它,如下所示:
ZSH= " $HOME /.dotfiles/oh-my-zsh " sh install.sh
如果您將 Oh My Zsh 安裝腳本作為自動安裝的一部分執行,則可以將--unattended
標誌傳遞給install.sh
腳本。這將不會嘗試更改預設 shell,並且在安裝完成後也不會執行zsh
。
sh -c " $( curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh ) " " " --unattended
如果您位於中國、印度或其他封鎖raw.githubusercontent.com
國家/地區,則可能需要將 URL 替換為https://install.ohmyz.sh
才能安裝。
安裝腳本也接受這些變數以允許安裝不同的儲存庫:
REPO
(預設: ohmyzsh/ohmyzsh
):採用owner/repository
的形式。如果您設定此變量,安裝程式將在https://github.com/{owner}/{repository}
找到儲存庫。
REMOTE
(預設: https://github.com/${REPO}.git
):這是 git 儲存庫克隆的完整 URL。如果您想要從 GitHub 以外的分支安裝(GitLab、Bitbucket...),或者您想使用 SSH 而不是 HTTPS 進行複製 ( [email protected]:user/project.git
),則可以使用此設定。
注意:它與設定REPO
變數不相容。此設定將優先。
BRANCH
(預設: master
):如果您想要變更複製儲存庫時要檢出的預設分支,可以使用此設定。這對於測試拉取請求,或者如果您想使用master
以外的分支可能很有用。
例如:
REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
git clone https://github.com/ohmyzsh/ohmyzsh.git ~ /.oh-my-zsh
~/.zshrc
文件cp ~ /.zshrc ~ /.zshrc.orig
您可以透過複製我們為您提供的範本來建立新的 zsh 設定檔。
cp ~ /.oh-my-zsh/templates/zshrc.zsh-template ~ /.zshrc
chsh -s $( which zsh )
您必須從使用者會話中登出並重新登入才能看到此變更。
打開新的終端機視窗後,它應該使用 Oh My Zsh 的配置來載入 zsh。
如果您在安裝時遇到任何問題,這裡有一些常見的修復方法。
oh-my-zsh
後無法找到某些指令,您可能需要修改~/.zshrc
中的PATH
。~/.zshrc
中的ZSH
環境變數。如果您想覆寫任何預設行為,只需在custom/
目錄中新增一個新檔案(以.zsh
結尾)即可。
如果您有許多可以很好配合的功能,您可以將它們作為XYZ.plugin.zsh
檔案放在custom/plugins/
目錄中,然後啟用此插件。
如果您想覆蓋隨 Oh My Zsh 分發的插件的功能,請在custom/plugins/
目錄中建立一個同名的插件,它將被加載,而不是plugins/
中的插件。
Oh My Zsh 中的預設行為是在 macOS 和 FreeBSD 系統中使用 BSD ls
。如果安裝了 GNU ls
(作為gls
指令),您可以選擇使用它。為此,您可以在取得oh-my-zsh.sh
之前使用基於 zstyle 的設定:
zstyle ' :omz:lib:theme-and-appearance ' gnu-ls yes
注意:這與DISABLE_LS_COLORS=true
不相容
如果您想要跳過預設的 Oh My Zsh 別名(在lib/*
檔案中定義的別名)或外掛別名,您可以在載入 Oh My Zsh 之前在~/.zshrc
檔案中使用下列設定。請注意,根據您的需要,有許多不同的方法可以跳過別名。
# Skip all aliases, in lib files and enabled plugins
zstyle ' :omz:* ' aliases no
# Skip all aliases in lib files
zstyle ' :omz:lib:* ' aliases no
# Skip only aliases defined in the directories.zsh lib file
zstyle ' :omz:lib:directories ' aliases no
# Skip all plugin aliases
zstyle ' :omz:plugins:* ' aliases no
# Skip only the aliases from the git plugin
zstyle ' :omz:plugins:git ' aliases no
您可以透過其他方式組合這些,並考慮到更具體的範圍優先:
# Skip all plugin aliases, except for the git plugin
zstyle ' :omz:plugins:* ' aliases no
zstyle ' :omz:plugins:git ' aliases yes
此功能的先前版本使用以下設置,該設置已被刪除:
zstyle ' :omz:directories ' aliases no
相反,您現在可以使用以下內容:
zstyle ' :omz:lib:directories ' aliases no
此功能目前處於測試階段,將來可能會發生變化。目前它也不相容於 zpm 或 zinit 等外掛程式管理器,它們不提供實作此功能的初始化腳本 (
oh-my-zsh.sh
)。
目前還不知道定義為函數的「別名」。例如 git 插件中的
gccd
、ggf
或ggl
函數。
非同步提示函數是一項實驗性功能(於 2024 年 4 月 3 日包含),允許 Oh My Zsh 非同步呈現提示訊息。這可以提高即時渲染效能,但可能不適用於某些設定。我們希望這不是問題,但如果您發現此新功能有問題,您可以在 Oh My Zsh 來源之前透過在 .zshrc 檔案中設定以下內容來關閉它:
zstyle ' :omz:alpha:lib:git ' async-prompt no
如果您的問題是 git 提示符號剛停止出現,您可以嘗試在取得oh-my-zsh.sh
之前強制它設定以下配置。如果仍然不起作用,請針對您的案例提出問題。
zstyle ' :omz:alpha:lib:git ' async-prompt force
預設情況下,系統會提示您每 2 週檢查一次更新。在載入 Oh My Zsh 之前,您可以透過在~/.zshrc
檔案中新增一行來選擇其他更新模式:
自動更新,無確認提示:
zstyle ' :omz:update ' mode auto
如果有可用更新,只需每隔幾天提醒一次即可:
zstyle ' :omz:update ' mode reminder
若要完全停用自動更新:
zstyle ' :omz:update ' mode disabled
注意:您可以使用以下設定控制 Oh My Zsh 檢查更新的頻率:
# This will check for updates every 7 days
zstyle ' :omz:update ' frequency 7
# This will check for updates every time you open the terminal (not recommended)
zstyle ' :omz:update ' frequency 0
您也可以使用以下設定限制更新詳細程度:
zstyle ' :omz:update ' verbose default # default update prompt
zstyle ' :omz:update ' verbose minimal # only few lines
zstyle ' :omz:update ' verbose silent # only errors
如果您想在任何時間點更新(也許有人剛剛發布了一個新插件,而您不想等待一周?)您只需要運行:
omz update
魔法! ?
Oh My Zsh 並不適合所有人。我們會想念你的,但我們想讓分手變得輕鬆。
如果您想要解除安裝oh-my-zsh
,只需從命令列執行uninstall_oh_my_zsh
即可。它將自行刪除並恢復您先前的bash
或zsh
配置。
在加入我們令人愉快的社群之前,請閱讀行為準則。
我遠遠不是 Zsh 專家,並且懷疑有很多方法可以改進 - 如果您有關於如何使配置更容易維護(並且更快)的想法,請毫不猶豫地分叉並發送拉取請求!
我們還需要人們測試拉取請求。因此,請仔細查看未解決的問題並盡可能提供協助。
有關更多詳細信息,請參閱貢獻。
目前我們有(超過)足夠的主題。請將您的主題新增至外部主題 wiki 頁面。
Oh My Zsh 擁有一個充滿活力的社區,由快樂的用戶和令人愉快的貢獻者組成。如果沒有我們的貢獻者的所有時間和幫助,它不會這麼棒。
太感謝了!
我們在社群媒體上:
我們提供貼紙、襯衫和咖啡杯供您展示您對 Oh My Zsh 的熱愛。再一次,你將成為城裡的話題!
Oh My Zsh 是在 MIT 許可下發布的。
Oh My Zsh 是由 Ruby on Rails 開發機構 Planet Argon 的團隊創建的。查看我們的其他開源專案。