Respostas:
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 bash
parece 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 bash
apenas 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.
PROMPT
variável de ambiente em sua .zprofile
, por exemplo:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
e realmente não há necessidade de export
parâmetros internos do shell, como PROMPT
.
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.
Você pode usar %3d
a expansão rápida :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
A forma geral é que %d
, se qualquer número inteiro positivo a seguir d
especificar os componentes à direita para mostrar o caminho atual, zero significa mostrar todo o caminho, inteiro negativo significa o caminho principal a mostrar:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Consulte http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html ouman zshmisc
%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 %3d
ou %3~
, por exemplo,
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
como em.../a/b
vez de~/a/b
. Para consertar isso, você pode usar%(5~|…/%3~|%~)
.