Onde estão localizadas as predefinições de prompt do zsh?

Onde estão localizadas as predefinições de prompt do zsh?

Gostaria de criar meu próprio prompt, mas começando com uma das predefinições que podem ser obtidas em prompt -l. Gostaria de saber onde eles estão definidos para que eu possa duplicar um e melhorá-lo.

Além disso, seria bom saber como disponibilizar o novo prompt como uma opção na lista de, prompt -lem vez de apenas defini-lo em .zshrc para que possa ser compartilhado com as comunidades.

ps: não, não quero usar oh-my-zsh

Responder1

Este promptcomando vem com zsh e está documentado nomanual. Infelizmente está faltando noíndice de funções, mas você pode encontrá-lo com uma pesquisa de texto completo: man zshallem seguida, pesquise ^ *prompt(a palavra “prompt” no início de uma linha) ou, para obter menos resultados irrelevantes, ^ *prompt [^ a-z](exclua locais onde é seguido por outra palavra). Faz parte dotemas de prompt contribuição do usuário.

O manual explica comoescreva seu próprio tema de prompt. Um tema de prompt é definido por uma função de configuração correspondente ao padrão de nomenclatura que deve ser carregado automaticamente. O código do tema de prompt não suporta oficialmente o registro dinâmico de um tema de prompt, embora olhando o código-fonte você possa fazer isso adicionando o nome da função de configuração (que deve corresponder ao padrão de nomenclatura) ao array após a execução de .prompt_name_setupprompt_themespromptinit

Para ver onde estão os temas de prompt disponíveis, veja prompt_*_setupde onde as funções são carregadas:

echo $^fpath/prompt_*_setup(N)

Cada uma delas é uma definição de função que você pode ler.

Responder2

% 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
%

informação relacionada