zsh のプロンプトプリセットはどこにありますか?

zsh のプロンプトプリセットはどこにありますか?

から取得できるプリセットの 1 つから始めて、独自のプロンプトを作成したいと思いますprompt -l。 それらがどこで定義されているかを知りたいので、複製して改良することができます。

prompt -lまた、新しいプロンプトを .zshrc で定義してコミュニティと共有できるようにするだけでなく、リスト内の選択肢として利用できるようにする方法を知っておくとよいでしょう。

追伸:いや、oh-my-zshは使いたくない

答え1

このpromptコマンドはzshに付属しており、マニュアル残念ながら、関数インデックスですが、全文検索で見つけることができます。次に、(行頭の「prompt」という単語)man zshallを検索するか、無関係なヒットを少なくするために、 (その後に別の単語が続く場所を除外する)を検索します。これは、^ *prompt^ *prompt [^ a-z]プロンプトテーマ ユーザー貢献

マニュアルには、独自のプロンプトテーマを書くプロンプト テーマは、自動ロードされる必要がある命名パターンに一致するセットアップ関数によって定義されます。プロンプト テーマ コードでは、プロンプト テーマの動的な登録は正式にはサポートされていませんが、ソース コードを確認すると、を実行した後に、セットアップ関数の名前 (命名パターンに一致する必要があります) を配列に追加することで、動的な登録を行うことができます。prompt_name_setupprompt_themespromptinit

使用可能なプロンプト テーマがどこにあるかを確認するには、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
%

関連情報