Prompt: substitua o caminho personalizado por uma palavra curta como ~ para casa

2

Quando eu chamo cd /Users/mu3/apps , o prompt simplifica da seguinte forma:

mu3 [~/apps]:

É possível fazer o mesmo para um caminho personalizado como cd /Users/mu3/Development/Web/test :

mu3 [DEV/test]:

Estou usando o iTerm + oh-my-zsh.

UPD: Eu não era específico o suficiente e também descobri novas informações.
Como uso o tema agnoster para zsh shell, ele lida com uma aparência imediata.

Então acabei mudando esta linha :

prompt_segment blue black '%~'

para isso:

PWDshort="${PWD/#$HOME/~}"
PWDshort="${PWDshort/\~\/_cld\/Dropbox\/Dev\/Web/DEV}"
prompt_segment blue black $PWDshort

Agora, o problema é que qualquer atualização aparentemente quebra isso.
Existe alguma maneira melhor de alcançar o mesmo resultado?

    
por mu3 08.04.2016 / 21:57

2 respostas

5

A maneira padrão de definir abreviações de diretório para o prompt é usar diretórios nomeados . Os diretórios nomeados são usados ao expandir a sequência de escape do prompt %~ , generalizando ~ para abreviar seu diretório pessoal e ~bob para abreviar o diretório pessoal de Bob.

mu3 [~]: cd /Users/mu3/Development/Web/test
mu3 [~/Development/Web/test]: hash -d test=$PWD
mu3 [~test]: cd config
mu3 [~test/config]: 

A maneira usual de fazer isso seria colocar hash -d test=~/Development/Web/test no seu .zshrc . Além de ser usado para abreviar prompts, o diretório nomeado também pode ser usado para abreviar caminhos, por exemplo, você pode executar cd ~test para mudar para esse diretório.

Com este método, o formulário abreviado sempre começa com ~ .

    
por 09.04.2016 / 01:27
2

Você pode (como em bash ) usar uma função no seu prompt. Aqui está um exemplo:

setopt PROMPT_SUBST

print_dir(){
  case $PWD in
  (*/Development*)
    echo DEV/${PWD:t}
    ;;
  (*)
    echo $PWD
    ;;
  esac
}

export PROMPT=$'[$(print_dir)]: '

Os zshall documentos da página de manual PROMPT_SUBST :

If the PROMPT_SUBST option is set, the prompt string is first subjected to parameter expansion, command substitution and arithmetic expansion. See zshexpn(1).

    
por 08.04.2016 / 22:50