
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 -l
em 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 prompt
comando 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 zshall
em 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_setup
prompt_themes
promptinit
Para ver onde estão os temas de prompt disponíveis, veja prompt_*_setup
de 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
%