前些天給命令列設定標題遇到一奇葩問題,最終除錯發現是 Oh-My-Zsh 的鍋。
在啟用 Oh-My-Zsh 後,使用命令:
echo -e "\033];this is the title\007"
居然無法修改終端視窗標題?不過,仔細觀察還是會注意到標題「閃」了一下,說明還是存在效果,只不過被某種「神祕力量」重設了回來,
最開始懷疑是不是 iTerm2 之類的鍋,換成 Terminal 問題依舊。
隨後開始嘗試使用 bash
執行上文的命令,正常工作。因此問題應該出在 Zsh 周邊。
於是使用 zsh -d -f
(即不載入任何 RC 檔案,最原始的 zsh)再次除錯,可以正常工作。所以罪魁禍首應當就隱藏在 ~/.zshrc
之中。
最終經過排查,發現是由於 Oh-My-Zsh 的一個名為 Auto title
的功能造成的,參考:https://github.com/robbyrussell/oh-my-zsh/...。
大致解決方案有兩種:
- 在 .zshrc 內寫入環境變數
DISABLE_AUTO_TITLE="true"
。 - 因為我的最終目的是修改而非禁用,故亦可直接修改
ZSH_THEME_TERM_TITLE_IDLE
環境變數作為空閒時的標題,參考 這段原始碼。
最終,我在 ~/.zshrc
末尾加入一行:
ZSH_THEME_TERM_TITLE_IDLE="%~" # 將當前工作目錄短路徑設為終端標題
注意,以上語句應在 Oh-My-Zsh 載入之後,否則將會被 這段原始碼 覆蓋。
問題解決。
本作品採用《CC 協議》,轉載必須註明作者和本文連結