戰(zhàn))
打開(kāi)Mac終端的那一刻大多數(shù)人看到的是白底黑字、一無(wú)所有的窗口而老手屏幕上卻是五彩斑斕的提示符、自動(dòng)補(bǔ)全的命令、一眼就能看懂的分屏布局。差距不在電腦就在iTerm2和它的插件生態(tài)上。這篇教程我基于自己六年的實(shí)際使用經(jīng)驗(yàn)把iTerm2從下載安裝、基礎(chǔ)配置到插件部署的完整流程一次講清新手照著做基本零踩坑。iTerm2是macOS平臺(tái)最強(qiáng)大的終端模擬器它解決了系統(tǒng)自帶Terminal在分屏、復(fù)用會(huì)話(huà)、搜索回滾、主題定制等方面的諸多痛點(diǎn)配合Oh My Zsh、Powerlevel10k、zsh-autosuggestions等插件能把終端變成真正的效率利器。這篇文章適合剛接觸Mac開(kāi)發(fā)環(huán)境、想優(yōu)化終端體驗(yàn)的朋友也適合已經(jīng)裝了iTerm2但一直沒(méi)配明白插件的老用戶(hù)。我會(huì)把每一步的操作、為什么要這么做的邏輯以及我踩過(guò)的坑都寫(xiě)清楚。1. 為什么是iTerm2而不是系統(tǒng)自帶終端1.1 系統(tǒng)自帶Terminal的四個(gè)硬傷不是說(shuō)macOS自帶的Terminal不能用而是它在高頻使用場(chǎng)景下確實(shí)難受。第一個(gè)硬傷是分屏能力太弱自帶終端雖然支持標(biāo)簽頁(yè)但你要在同一個(gè)窗口里左右分屏看日志、上下分屏寫(xiě)命令基本做不到得開(kāi)多個(gè)窗口來(lái)回切換窗口一多還容易認(rèn)錯(cuò)。第二個(gè)硬傷是會(huì)話(huà)恢復(fù)能力差你開(kāi)了六七個(gè)標(biāo)簽頁(yè)不小心全關(guān)了重開(kāi)之后干干凈凈剛才的命令歷史、輸出日志全沒(méi)了想回溯都無(wú)從下手。第三個(gè)硬傷是配色和主題自由度低自帶終端雖然能改字體、改背景色但可定制范圍非常有限想要類(lèi)似Monokai、Dracula這種現(xiàn)代配色得自己手動(dòng)去調(diào)而且調(diào)完還不一定好看。第四個(gè)硬傷是回滾和搜索體驗(yàn)不好輸出內(nèi)容一多往上滾動(dòng)查看很卡搜索關(guān)鍵詞也不夠智能這些都是iTerm2很早就解決的痛點(diǎn)。1.2 iTerm2的核心優(yōu)勢(shì)或者說(shuō)為什么一用就回不去iTerm2最讓我離不開(kāi)的功能是分屏Split Panes你可以用commandD左右分屏commandshiftD上下分屏每個(gè)分屏都是獨(dú)立的Shell會(huì)話(huà)互不干擾這對(duì)同時(shí)跑前端dev server和后端接口調(diào)試的人來(lái)說(shuō)簡(jiǎn)直是剛需。另一個(gè)神級(jí)功能是Tmux集成iTerm2原生支持Tmux工作區(qū)你可以在一個(gè)窗口里管理多個(gè)遠(yuǎn)程或本地會(huì)話(huà)關(guān)掉窗口再打開(kāi)會(huì)話(huà)還在配合終端復(fù)用場(chǎng)景非常穩(wěn)。再一個(gè)是Hotkey Window你可以設(shè)置一個(gè)全局快捷鍵比如option空格讓iTerm2像一個(gè)下拉式終端一樣瞬間出現(xiàn)在屏幕頂部輸完命令再按一下它就消失不打擾當(dāng)前的編輯器或?yàn)g覽器這個(gè)體驗(yàn)一旦習(xí)慣就回不去了。還有強(qiáng)大的查找和智能選中iTerm2的搜索支持正則表達(dá)式雙擊智能選中URL、文件路徑、IP地址等自動(dòng)補(bǔ)全括號(hào)引號(hào)配合快捷鍵還能直接在終端里用光標(biāo)選中復(fù)制。支持這些能力的是iTerm2底層的渲染引擎和高性能的文本緩沖機(jī)制即使輸出幾十萬(wàn)行日志滾動(dòng)也不卡。對(duì)我來(lái)說(shuō)工具的核心價(jià)值就是減少操作阻力iTerm2確實(shí)做到了。所以下面的內(nèi)容都基于iTerm2展開(kāi)。2. 安裝前的準(zhǔn)備把Homebrew這個(gè)基礎(chǔ)工具搞定在安裝iTerm2和插件之前我強(qiáng)烈建議先把Homebrew裝好。Homebrew是macOS最流行的包管理器你可以把它理解成Mac世界的應(yīng)用商店但它裝的是命令行工具和軟件包比如git、node、python、wget、tree等等一行命令就能完成下載、編譯、安裝和升級(jí)。其實(shí)iTerm2本身可以直接從官網(wǎng)下載dmg安裝不一定非要Homebrew但Oh My Zsh、Powerlevel10k等插件的安裝過(guò)程中會(huì)用到git和curl后續(xù)想升級(jí)iTerm2或者安裝其他終端工具時(shí)Homebrew能讓你省掉大量手動(dòng)操作。2.1 Homebrew的安裝命令以及報(bào)錯(cuò)怎么破Homebrew官網(wǎng)提供了一行安裝腳本在終端里粘貼執(zhí)行就行核心命令是這樣/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)這個(gè)腳本會(huì)先檢查你的Mac上有沒(méi)有Command Line ToolsXcode命令行工具沒(méi)有的情況下會(huì)自動(dòng)安裝或提示你安裝然后下載Homebrew本體并設(shè)置環(huán)境變量。整個(gè)過(guò)程和你的網(wǎng)絡(luò)環(huán)境關(guān)系很大在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下很多人會(huì)在這個(gè)環(huán)節(jié)卡住報(bào)各種curl錯(cuò)誤或github連接超時(shí)。這里分享一個(gè)我實(shí)測(cè)處理mac安裝homebrew報(bào)錯(cuò)的通用思路。首選方案是配置國(guó)內(nèi)鏡像源常見(jiàn)做法是把Homebrew的倉(cāng)庫(kù)地址替換成清華或中科大的鏡像網(wǎng)上已經(jīng)有很多一鍵腳本但需要注意鏡像源本身也是在持續(xù)變化的。我個(gè)人的做法是優(yōu)先檢查網(wǎng)絡(luò)能不能正常訪(fǎng)問(wèn)raw.githubusercontent.com如果確定是網(wǎng)絡(luò)問(wèn)題試著配置代理或者更換DNS為局域網(wǎng)內(nèi)速度較快的公共DNS后再重試。如果依然不行再走鏡像源方案。不要一報(bào)錯(cuò)就重新執(zhí)行安裝腳本很多問(wèn)題是重復(fù)執(zhí)行解決不了的反而可能留下半成品的目錄。正確的做法是先看清楚報(bào)錯(cuò)信息常見(jiàn)的無(wú)非是curl超時(shí)、git clone失敗、Permission denied這三類(lèi)前兩類(lèi)和網(wǎng)絡(luò)相關(guān)第三類(lèi)用sudo授權(quán)或者給當(dāng)前用戶(hù)目錄權(quán)限就能解決。我在后面問(wèn)題排查那一節(jié)會(huì)專(zhuān)門(mén)展開(kāi)講。2.2 驗(yàn)證Homebrew是否裝好以及PATH配置Homebrew裝完后第一步是驗(yàn)證是否安裝成功在終端執(zhí)行brew --version如果能看到類(lèi)似Homebrew 4.x.x的版本號(hào)輸出說(shuō)明Homebrew本體沒(méi)問(wèn)題。緊接著要做的就是讓系統(tǒng)找到brew命令特別是在Apple Silicon芯片的Mac上Homebrew默認(rèn)安裝在/opt/homebrew目錄下需要手動(dòng)把環(huán)境變量加到shell配置里。在目前絕大多數(shù)使用zsh的Mac上你需要編輯~/.zprofile文件把下面這段加進(jìn)去eval $(/opt/homebrew/bin/brew shellenv)如果你的Mac是Intel芯片Homebrew裝在/usr/local目錄下那路徑就要對(duì)應(yīng)調(diào)整。這里特別強(qiáng)調(diào)一下很多新手裝完Homebrew后執(zhí)行brew -v提示command not found大概率就是環(huán)境變量沒(méi)加上。添加完畢后執(zhí)行source ~/.zprofile讓配置生效。之后我裝iTerm2、裝各種插件時(shí)都會(huì)默認(rèn)你已經(jīng)能用brew命令。3. iTerm2安裝與基礎(chǔ)配置照著做就能用3.1 用Homebrew安裝iTerm2還是去官網(wǎng)下載安裝iTerm2有兩條路一條是去官網(wǎng)下dmg包拖進(jìn)Applications另一條是直接用Homebrew安裝。我個(gè)人推薦后者命令簡(jiǎn)單brew install --cask iterm2cask表示安裝的是圖形化應(yīng)用而不是命令行工具。用Homebrew安裝的好處是可以后續(xù)通過(guò)brew upgrade --cask iterm2來(lái)統(tǒng)一升級(jí)和系統(tǒng)里其他軟件的管理方式保持一致。下載完成后打開(kāi)Launchpad或者應(yīng)用程序文件夾點(diǎn)擊iTerm2即可啟動(dòng)。如果你發(fā)現(xiàn)brew下載速度很慢也可以改用官網(wǎng)下載的方式。進(jìn)入iterm2.com的下載頁(yè)面下載最新穩(wěn)定版的壓縮包解壓后把iTerm2.app拖入Applications目錄即可。這兩種方式我都試過(guò)實(shí)際使用上沒(méi)有本質(zhì)差別只是升級(jí)路徑不同。安裝完啟動(dòng)iTerm2后它默認(rèn)打開(kāi)一個(gè)基于你登錄Shell的窗口如果你是第一次用應(yīng)該能看到類(lèi)似bash或zsh的提示符界面。這里建議你直接把iTerm2設(shè)置為系統(tǒng)默認(rèn)終端通過(guò)iTerm2菜單 - Make Default Term這樣很多外部工具調(diào)用終端時(shí)自動(dòng)打開(kāi)的就是iTerm2而不是系統(tǒng)Terminal。3.2 必須要改的基礎(chǔ)設(shè)置不改等于白裝iTerm2裝好之后我并不建議急著去配插件先把基礎(chǔ)設(shè)置調(diào)好否則后續(xù)用起來(lái)還是會(huì)別扭。我按重要程度說(shuō)幾個(gè)必改項(xiàng)。第一個(gè)必改項(xiàng)是配色方案。Preferences - Profiles - Colors這里可以導(dǎo)入配色主題。我一直在用的是Solarized Dark和Dracula兩個(gè)主題你也可以到iTerm2-Color-Schemes這個(gè)開(kāi)源倉(cāng)庫(kù)里下載幾十種現(xiàn)成配色。配色影響的是長(zhǎng)時(shí)間看終端的舒適度選一個(gè)對(duì)比度適中的即可太刺眼或太暗都傷眼睛。第二個(gè)必改項(xiàng)是字體。終端的字體直接影響代碼可讀性和中文顯示效果。我的推薦是安裝一款等寬字體比如MesloLGS NF它自帶Nerd Fonts圖標(biāo)是Powerlevel10k主題官方推薦的字體。下載字體文件后雙擊安裝到字體冊(cè)然后在Preferences - Profiles - Text - Font里選擇MesloLGS NF。別小看這一步?jīng)]有這個(gè)字體Powerlevel10k里各種圖標(biāo)和箭頭都會(huì)變成亂碼方塊很多人配置主題時(shí)遇到亂碼八成就是字體沒(méi)裝對(duì)。第三個(gè)必改項(xiàng)是窗口和分屏的快捷鍵。Preferences - Keys里可以自定義快捷鍵比如我習(xí)慣把commandD設(shè)為左右分屏、commandshiftD設(shè)為上下分屏把option空格設(shè)為Hotkey Window的呼出快捷鍵。iTerm2默認(rèn)已經(jīng)有這些快捷鍵方案你只需要確認(rèn)沒(méi)有被系統(tǒng)占用即可。還有一種常見(jiàn)設(shè)置是把滾輪行為改為模擬screen/tmux模式在Preferences - Advanced里可以找到這樣用鼠標(biāo)滾動(dòng)時(shí)會(huì)發(fā)送上下鍵給Shell更貼近終端復(fù)用場(chǎng)景。第四個(gè)必改項(xiàng)是關(guān)閉不必要的提示音。Preferences - Profiles - Terminal找到Notification和Silence Bell相關(guān)的選項(xiàng)把響鈴提示去掉否則你在終端里按Tab補(bǔ)全、碰到了不存在的命令時(shí)Mac會(huì)發(fā)出咚的一聲在安靜的環(huán)境下很煩人。我直接把Bell圖標(biāo)關(guān)成靜音。這些基礎(chǔ)的設(shè)置大約花五分鐘就能搞定但帶來(lái)的體驗(yàn)提升是長(zhǎng)期的。4. 插件配置實(shí)戰(zhàn)讓終端真正封神4.1 安裝Oh My Zsh并切換默認(rèn)ShelliTerm2本身只是終端模擬器真正的交互體驗(yàn)很大程度來(lái)自Shell和擴(kuò)展框架。macOS從Catalina開(kāi)始默認(rèn)Shell已經(jīng)換成了zsh但默認(rèn)的zsh配置幾乎為零提示符簡(jiǎn)陋、沒(méi)有補(bǔ)全、沒(méi)有自動(dòng)建議。這時(shí)候就需要Oh My Zsh出場(chǎng)了。Oh My Zsh是一個(gè)社區(qū)驅(qū)動(dòng)的zsh配置管理框架它把配置、別名、主題、插件的管理統(tǒng)一起來(lái)你不用手動(dòng)去修改復(fù)雜的.zshrc只要在配置文件里聲明啟用哪個(gè)主題、加載哪些插件即可。安裝命令在官網(wǎng)有標(biāo)準(zhǔn)的安裝方式sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)執(zhí)行前先確認(rèn)curl能正常訪(fǎng)問(wèn)raw.githubusercontent.com如果不行優(yōu)先解決網(wǎng)絡(luò)問(wèn)題再繼續(xù)。安裝過(guò)程中腳本會(huì)檢測(cè)當(dāng)前默認(rèn)Shell如果不是zsh它會(huì)詢(xún)問(wèn)你是否切換到zsh建議選Y。切換完成后使用命令確認(rèn)echo $SHELL輸出應(yīng)該是/bin/zsh。如果你的系統(tǒng)里沒(méi)有zsh可以用brew install zsh先安裝。裝好Oh My Zsh之后你會(huì)發(fā)現(xiàn)終端的提示符發(fā)生了一點(diǎn)變化主題默認(rèn)是robbyrussell但還是比較樸素。真正的變化從換主題開(kāi)始。4.2 Powerlevel10k主題配置終端顏值和效率雙雙拉滿(mǎn)Powerlevel10k是目前zsh社區(qū)最流行的提示符主題它的特點(diǎn)是快、信息豐富、配置交互友好。所謂提示符就是你在終端里每一行命令前面那段文本它通常會(huì)顯示用戶(hù)名、當(dāng)前目錄、git分支、命令執(zhí)行時(shí)間等信息。Powerlevel10k把這些信息做了模塊化管理并且用漂亮的圖標(biāo)和顏色區(qū)展示。安裝Powerlevel10k有多種方式我用的是Oh My Zsh的安裝方式先把倉(cāng)庫(kù)克隆到自定義插件目錄git clone --depth1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k然后在~/.zshrc文件里把ZSH_THEME改成powerlevel10kZSH_THEMEpowerlevel10k/powerlevel10k修改完成后執(zhí)行source ~/.zshrc就能看到Powerlevel10k的配置向?qū)ё詣?dòng)啟動(dòng)。它會(huì)以問(wèn)答的形式讓你選擇提示符樣式、圖標(biāo)類(lèi)型、顏色方案等配置項(xiàng)全部選擇完成后自動(dòng)生成~/.p10k.zsh配置文件。在這個(gè)過(guò)程中它會(huì)用到很多特殊的符號(hào)圖標(biāo)比如鎖、箭頭、分支符號(hào)如果界面里出現(xiàn)方塊亂碼說(shuō)明你的終端字體沒(méi)有設(shè)置為MesloLGS NF回到前面基礎(chǔ)設(shè)置那一步把字體換掉再重新source。Powerlevel10k配置完成后的提示符看起來(lái)類(lèi)似這樣第一行是當(dāng)前目錄、git分支和狀態(tài)第二行是輸入命令的位置執(zhí)行完命令后下面還會(huì)顯示執(zhí)行耗時(shí)。它最直觀的價(jià)值是讓當(dāng)前所處環(huán)境一目了然我在多項(xiàng)目切換時(shí)一眼就能看出自己是不是在正確的目錄和分支上。4.3 zsh-autosuggestions自動(dòng)建議輸入命令快到飛起自動(dòng)建議插件是另一個(gè)用了就回不去的功能。它的作用是當(dāng)你輸入命令時(shí)終端會(huì)根據(jù)歷史命令記錄在當(dāng)前輸入的光標(biāo)后面以灰白色字體顯示一條建議命令比如你輸入git c它自動(dòng)建議git commit這時(shí)候按鍵盤(pán)右鍵或者controlf即可補(bǔ)全整條建議。安裝方式按照官方文檔克隆到插件目錄git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions然后在~/.zshrc的plugins列表里把zsh-autosuggestions加上plugins(git zsh-autosuggestions)執(zhí)行source ~/.zshrc使配置生效。這個(gè)插件我是強(qiáng)烈建議每一個(gè)用終端的人都要裝它省的不只是打字時(shí)間更重要的是減少輸入錯(cuò)誤。比如你經(jīng)常執(zhí)行docker compose up -d時(shí)間久了你只需要輸入docker c右側(cè)就自動(dòng)出現(xiàn)完整命令按一下鍵就出來(lái)非常流暢。我也遇到過(guò)覺(jué)得自動(dòng)建議顏色太淺看不見(jiàn)的情況可以在~/.zshrc里調(diào)整建議文字的顏色用ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE變量比如ZSH_AUTOSUGGEST_HIGHLIGHT_STYLEfg#808080建議色的目的是不干擾當(dāng)前輸入所以不要調(diào)得太搶眼淺灰色即可。4.4 zsh-syntax-highlighting語(yǔ)法高亮把錯(cuò)誤扼殺在回車(chē)前語(yǔ)法高亮插件zsh-syntax-highlighting能在輸入命令時(shí)對(duì)命令進(jìn)行解析并著色。你可別小看這個(gè)功能它像是有一雙眼睛盯著你輸命令命令存在時(shí)顯示綠色不存在時(shí)顯示紅色字符串、注釋、路徑等顏色各不相同。這相當(dāng)于在你按下回車(chē)前就告訴你這條命令是不是合法的這個(gè)路徑是否存在能省下大量因?yàn)槠磳?xiě)錯(cuò)誤導(dǎo)致command not found的時(shí)間。安裝方式和自動(dòng)建議類(lèi)似git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting在~/.zshrc的plugins里加上plugins(git zsh-autosuggestions zsh-syntax-highlighting)注意加載順序官方建議把zsh-syntax-highlighting放在插件列表的最后一個(gè)因?yàn)樗谇懊嬉鸭虞d的插件和alias做高亮解析。如果你發(fā)現(xiàn)有些命令的alias沒(méi)有被高亮就是這個(gè)順序問(wèn)題。我日常使用中感受最深的是一旦輸入了一個(gè)不存在的命令它在未回車(chē)前就變成紅色我立刻就知道自己拼錯(cuò)了不用等報(bào)錯(cuò)再回頭改。這種即時(shí)反饋對(duì)效率的提升是潤(rùn)物細(xì)無(wú)聲的。4.5 幾個(gè)補(bǔ)充插件讓終端習(xí)慣更順手基礎(chǔ)的兩個(gè)插件裝好之后還可以按需加幾個(gè)。我目前常用的是z和zsh-autopair。z是一個(gè)目錄跳轉(zhuǎn)插件它會(huì)根據(jù)你訪(fǎng)問(wèn)目錄的頻率自動(dòng)記錄輸入z pro就能快速跳到最常訪(fǎng)問(wèn)的名為pro的目錄。安裝方式同樣克隆到插件目錄然后在plugins里加z。這個(gè)插件對(duì)經(jīng)常在多項(xiàng)目目錄間切換的人來(lái)說(shuō)非常實(shí)用我經(jīng)常在不同的項(xiàng)目源碼目錄之間跳轉(zhuǎn)加上z之后基本告別cd加長(zhǎng)路徑的輸入方式。zsh-autopair是一個(gè)自動(dòng)補(bǔ)全配對(duì)的插件輸入左括號(hào)或引號(hào)時(shí)自動(dòng)補(bǔ)全右括號(hào)和右引號(hào)還能刪除成對(duì)符號(hào)減少光標(biāo)跳躍操作。安裝后同樣在plugins列表里聲明。如果有需要在終端里看JSON格式接口返回的需求可以搭配jq工具使用執(zhí)行brew install jq之后curl某個(gè)API接口時(shí)curl -s https://api.example.com/data | jq .jq會(huì)以彩色格式輸出格式化后的JSON比一長(zhǎng)串?dāng)D在一起的內(nèi)容清晰太多。這個(gè)工具雖然不是iTerm2插件但和終端搭配起來(lái)體驗(yàn)非常好。我在調(diào)試后端接口時(shí)基本離不開(kāi)jq。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 安裝Homebrew和插件時(shí)的網(wǎng)絡(luò)與環(huán)境坑我在幫新手排查環(huán)境問(wèn)題時(shí)遇到最多的是Homebrew安裝報(bào)錯(cuò)和插件clone失敗。常見(jiàn)報(bào)錯(cuò)可分為三類(lèi)我整理成了一張速查表方便對(duì)照處理。報(bào)錯(cuò)類(lèi)型典型提示解決方法網(wǎng)絡(luò)超時(shí)curl: (28) Operation timed out檢查網(wǎng)絡(luò)連通性更換DNS如223.5.5.5或配置代理后重試git clone失敗fatal: unable to access https://github.com/...同樣先排查網(wǎng)絡(luò)確認(rèn)能訪(fǎng)問(wèn)github再重試也可以改用鏡像倉(cāng)庫(kù)地址權(quán)限不足Permission denied apply2files給當(dāng)前用戶(hù)分配對(duì)/opt/homebrew或/usr/local的寫(xiě)入權(quán)限或使用sudo后修復(fù)owner特別提醒一點(diǎn)如果安裝腳本執(zhí)行到一半失敗不要立刻重復(fù)執(zhí)行先清理半成品狀態(tài)。以Homebrew為例如果/opt/homebrew目錄已經(jīng)被創(chuàng)建但內(nèi)容不完整建議先備份日志再刪除或重命名這個(gè)目錄然后重新執(zhí)行安裝腳本。直接重復(fù)跑腳本有時(shí)會(huì)在半路報(bào)錯(cuò)反而不容易定位問(wèn)題。插件clone失敗的處理思路類(lèi)似。優(yōu)先排查github的連通性如果能ping通github.com但clone仍然超時(shí)大概率是被限速或者當(dāng)前網(wǎng)絡(luò)對(duì)github不友好。這時(shí)可以考慮通過(guò)gitee等平臺(tái)的鏡像倉(cāng)庫(kù)克隆或者改用手動(dòng)下載壓縮包解壓到對(duì)應(yīng)目錄的方式效果一樣。5.2 配置Powerlevel10k時(shí)的常見(jiàn)困擾配置Powerlevel10k時(shí)我遇到過(guò)的用戶(hù)問(wèn)題主要集中在三處。一是亂碼方塊這個(gè)幾乎都是字體問(wèn)題換用MesloLGS NF或任意一款Nerd Fonts字體后即可解決注意設(shè)置字體后要重新打開(kāi)當(dāng)前會(huì)話(huà)或者執(zhí)行source ~/.zshrc讓配置生效。二是主題沒(méi)有加載修改~/.zshrc里的ZSH_THEME后沒(méi)有重啟zsh導(dǎo)致一直顯示舊主題。正確做法是在終端執(zhí)行source ~/.zshrc或者直接關(guān)閉當(dāng)前窗口重開(kāi)。三是首次安裝提示符顯示不完整比如git分支信息一直不出來(lái)這通常是你所在的目錄不是一個(gè)git倉(cāng)庫(kù)Powerlevel10k的git模塊當(dāng)然不顯示。切到一個(gè)git倉(cāng)庫(kù)里再觀察就正常了。還有一個(gè)我踩過(guò)的坑是Powerlevel10k的配置向?qū)г谝淮我馔庵袛嗪竺看未蜷_(kāi)終端都會(huì)重復(fù)詢(xún)問(wèn)是否重新配置。解決辦法是直接把~/.p10k.zsh文件清理重新執(zhí)行p10k configure命令再次進(jìn)入配置向?qū)нx擇你想要的樣子即可。另外如果你在配置向?qū)Ю镞x錯(cuò)了選項(xiàng)不需要重新安裝Powerlevel10k隨時(shí)可以執(zhí)行p10k configure重新配置。5.3 性能與日常使用的幾個(gè)優(yōu)化點(diǎn)配置的插件多了之后有可能會(huì)出現(xiàn)打開(kāi)終端變慢的情況。zsh啟動(dòng)慢的根源一般在于插件加載時(shí)的PATH檢查和補(bǔ)全初始化。我實(shí)測(cè)下來(lái)Powerlevel10k即使在最復(fù)雜的顯示模式下啟動(dòng)速度也遠(yuǎn)優(yōu)于其他主題因?yàn)樗J(rèn)開(kāi)啟了instant prompt機(jī)制可以在啟動(dòng)早期階段就先顯示提示符后臺(tái)再慢慢加載剩余配置。如果依然覺(jué)得慢可以在~/.zshrc里精簡(jiǎn)插件只保留真正在用的那幾個(gè)。很多人一次性加上十幾個(gè)插件實(shí)際上大部分從未觸發(fā)過(guò)反而拖慢了啟動(dòng)時(shí)間。我常用的就是git、zsh-autosuggestions、zsh-syntax-highlighting、z四個(gè)左右啟動(dòng)時(shí)間在可接受范圍內(nèi)。還可以用zsh的compinit延遲加載機(jī)制在~/.zshrc里設(shè)置autoload -Uz compinit和compinit -i同時(shí)配合Powerlevel10k的instant prompt能明顯改善新開(kāi)標(biāo)簽頁(yè)的啟動(dòng)延遲。另外一個(gè)日常優(yōu)化是設(shè)置iTerm2的保存窗口布局功能。當(dāng)你把窗口分屏、調(diào)好位置后在iTerm2的Window菜單里選擇Save Window Arrangement以后可以一鍵恢復(fù)你習(xí)慣的布局避免每次手動(dòng)重新分屏。這個(gè)功能配合Tmux使用基本可以做到關(guān)掉終端再打開(kāi)一切照舊。5.4 那些我建議你避開(kāi)的花哨配置網(wǎng)上有很多iTerm2配置美化教程會(huì)教你把終端背景設(shè)成毛玻璃、加各種動(dòng)態(tài)圖片、換非?;ㄉ诘念伾M合。我建議新手不要一上來(lái)就全部照搬。終端工具的第一優(yōu)先級(jí)永遠(yuǎn)是穩(wěn)定和高效花哨的動(dòng)畫(huà)和背景會(huì)占用GPU資源在一些低配Mac上甚至?xí)斐奢斎肟D。我自己曾經(jīng)給iTerm2加過(guò)gif動(dòng)態(tài)背景新鮮了半小時(shí)就關(guān)了因?yàn)榇a高亮和文字可讀性反而下降了。建議保持配色干凈、字體清晰、信息密度適中真正需要花心思的是那些能減少重復(fù)操作的配置比如自動(dòng)建議、語(yǔ)法高亮、目錄跳轉(zhuǎn)、快捷鍵布局。把基礎(chǔ)能力練扎實(shí)了再考慮外觀風(fēng)格的微調(diào)也不遲。最后再分享一個(gè)我個(gè)人的體會(huì)終端的配置沒(méi)有絕對(duì)標(biāo)準(zhǔn)適合自己工作流的就是最好的。這篇文章里給的字體、配色、插件組合是我在長(zhǎng)時(shí)間使用中沉淀下來(lái)的一套穩(wěn)定配置但它不一定完美適配所有人的習(xí)慣。你可以把它當(dāng)成一個(gè)起點(diǎn)裝好基礎(chǔ)環(huán)境后根據(jù)自己的使用場(chǎng)景去疊加和調(diào)整摸索出屬于自己的終端使用節(jié)奏。配置過(guò)程本身也是理解macOS命令行生態(tài)的一個(gè)很好的切入點(diǎn)折騰幾次之后你對(duì)Shell的理解會(huì)比單純看文檔要深得多。