Para obter um efeito semelhante bash, incluindo o ..., tente:
%(4~|.../%3~|%~)
Isso verifica se o caminho possui pelo menos 4 elementos ( %(4~|true|false)) e, se verdadeiro, imprime alguns pontos com os últimos 3 elementos ( .../%3~), caso contrário, o caminho completo é impresso %~.
Notei que bashparece encurtar caminhos no diretório home de forma diferente, por exemplo:
~/.../some/long/path
Para um efeito semelhante, você pode querer usar:
%(5~|%-1~/…/%3~|%4~)
Isso verifica se o caminho tem mais de 5 elementos e, nesse caso, imprime o primeiro elemento ( %-1~), alguns pontos ( /…/) e os últimos 3 elementos. Não é exatamente o mesmo que os caminhos, que não estão no diretório inicial, também terão o primeiro elemento no início, enquanto bashapenas imprimem pontos nesse caso. então
/this/…/some/silly/path
ao invés de
.../some/silly/path
Mas isso pode não ser necessariamente uma coisa ruim.
Eu gosto mais da primeira versão, mas observe que ela aparece ~/a/bcomo em .../a/bvez de ~/a/b. Para consertar isso, você pode usar %(5~|…/%3~|%~).
Momar
Para aqueles novos para zsh (como eu), que pretende utilizar esta sintaxe com a PROMPTvariável de ambiente em sua .zprofile, por exemplo:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
Ryan H.
11
@RyanH. Obrigado, lendo minha resposta novamente, noto que nunca mencionei onde essas configurações precisam ser feitas. Vou ter que consertar isso. Duas pequenas coisas sobre o seu comentário: as configurações para sessões interativas do shell devem ser feitas .zshrce realmente não há necessidade de exportparâmetros internos do shell, como PROMPT.
Adaephon 6/06/19
@Adaephon Obrigado pela informação. Vou arrumar! :)
Ryan H.
8
Além das outras respostas fornecidas aqui, você também pode usar %<para truncar o caminho para um determinado número de caracteres . Acho isso preferível ao uso %<n>d, pois os elementos individuais do caminho podem obviamente ser bastante longos em si. O uso %<gera um comprimento máximo de prompt muito mais previsível.
Por exemplo, para truncar à esquerda o elemento do caminho com expansão de til ( %~) para 15 caracteres, substituindo os caracteres removidos por .., você pode fazer algo assim:
PROMPT='%n@%m:%15<..<%~%<<%# '
Isso está documentado no manual do Zsh em Prompt Expansion , logo no final da página.
A forma geral é que %d, se qualquer número inteiro positivo a seguir despecificar os componentes à direita para mostrar o caminho atual, zero significa mostrar todo o caminho, inteiro negativo significa o caminho principal a mostrar:
%d
%/Current working directory.If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~As%d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
Portanto, para obter algo semelhante PROMPT_DIRTRIM=3, você pode usar %3dou %3~, por exemplo,
~/a/b
como em.../a/b
vez de~/a/b
. Para consertar isso, você pode usar%(5~|…/%3~|%~)
.PROMPT
variável de ambiente em sua.zprofile
, por exemplo:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
e realmente não há necessidade deexport
parâmetros internos do shell, comoPROMPT
.Além das outras respostas fornecidas aqui, você também pode usar
%<
para truncar o caminho para um determinado número de caracteres . Acho isso preferível ao uso%<n>d
, pois os elementos individuais do caminho podem obviamente ser bastante longos em si. O uso%<
gera um comprimento máximo de prompt muito mais previsível.Por exemplo, para truncar à esquerda o elemento do caminho com expansão de til (
%~
) para 15 caracteres, substituindo os caracteres removidos por..
, você pode fazer algo assim:Isso está documentado no manual do Zsh em Prompt Expansion , logo no final da página.
fonte
Você pode usar
%3d
a expansão rápida :A forma geral é que
%d
, se qualquer número inteiro positivo a seguird
especificar os componentes à direita para mostrar o caminho atual, zero significa mostrar todo o caminho, inteiro negativo significa o caminho principal a mostrar:fonte
Consulte http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html ou
man zshmisc
Portanto, para obter algo semelhante
PROMPT_DIRTRIM=3
, você pode usar%3d
ou%3~
, por exemplo,fonte