
我想創建自己的提示,但從可以從 獲得的預設之一開始prompt -l
。我想知道它們是在哪裡定義的,這樣我就可以複製一個並對其進行修改。
prompt -l
另外,如果知道如何使新提示作為列表中的選項提供,而不是僅僅在 .zshrc 中定義它,以便與社區共享,那就太好了。
ps:不,我不想使用 oh-my-zsh
答案1
該prompt
命令隨 zsh 一起提供,並記錄在手動的。不幸的是它從功能索引,但您可以透過全文搜尋找到它:man zshall
然後搜尋^ *prompt
(行首的「提示」一詞),或者為了減少不相關的命中^ *prompt [^ a-z]
(排除後面跟著另一個單字的地方)。它是的一部分提示主題使用者貢獻。
這本手冊解釋如何編寫您自己的提示主題。提示主題由與必須自動載入的命名模式相符的設定函數定義。提示主題代碼並不正式支援動態註冊提示主題,但查看原始程式碼,您可以透過在執行後將設定函數的名稱(必須與命名模式相符)新增至陣列中來實現。prompt_name_setup
prompt_themes
promptinit
要查看可用的提示主題在哪裡,請查看prompt_*_setup
函數從哪裡載入:
echo $^fpath/prompt_*_setup(N)
其中每一個都是一個函數定義,您可以去閱讀。
答案2
% autoload -Uz promptinit && promptinit # Initialize the prompt system
% prompt -p # Preview the included prompts
...
% # Get the source file of a particular prompt:
% zmodload zsh/parameter
% print $functions_source[prompt_fade_setup]
/usr/share/zsh/5.8/functions/prompt_fade_setup
%