我想创建自己的提示,但从可以从 获得的预设之一开始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
%