Como reduzir o prompt de um caminho longo usando variáveis de ambiente no OS X (estender '~')

2

Eu já vi isso funcionando com o ambiente gemset, gostaria de reproduzi-lo agora que preciso trabalhar em um caminho de diretório muito indentado.

Basicamente, eu tinha uma variável de ambiente $GEM_HOME apontando para ~/.rvm/somewhere . Sempre que eu cd ~/.rvm/somewhere/someSubdir meu prompt seria: giulio@Giulios-MacBook-Pro:$GEM_HOME/someSubdir .

Foi muito legal e compacto e agora gostaria de encolher meu prompt do oh-my-zsh, já que estou trabalhando agora em uma caixa do Windows Parallels, e tenho um caminho muito longo no meu prompt,

Eu gostaria de:

export WIN_HOME=/Users/giulio/Documents/Parallels/Windows\ 8.pvm/Windows\ Disks/C

para que, quando eu estiver em /Users/giulio/Documents/Parallels/Windows\ 8.pvm/Windows\ Disks/C/Users , o prompt mostre apenas WIN_HOME/USERS .

Basicamente eu gostaria de obter o comportamento de ~ que se refere a /Users/giulio para meu usuário com alguns diretórios adicionais.

Como posso conseguir isso?

obrigado,

    
por user72464 07.11.2014 / 11:09

2 respostas

2

Você também pode usar hash -d para definir Diretórios nomeados estáticos (assim como as residências dos usuários):

hash -d WIN_HOME='/Users/giulio/Documents/Parallels/Windows 8.pvm/Windows Disks/C'

Em vez de todo o caminho zsh mostrará ~WIN_HOME . Você também pode ir para este diretório por cd ~WIN_HOME .

Diretórios nomeados estáticos são criados automaticamente para usuários domésticos ( ~someuser aponta para o diretório pessoal de "algum usuário"). Também para parâmetros que contêm caminhos absolutos (no seu caso, $GEM_HOME ), uma vez que eles são acessados com ~ , seguido do nome do parâmetro ( ~GEM_HOME ) ou se a opção AUTO_NAME_DIRS está definida.

hash -d tem a vantagem de não ser necessário confundir seu ambiente com parâmetros.

Para o prompt zsh sempre usará a representação mais curta de um caminho. Portanto, se você definir hash -d temporary_directory=/tmp/foo , o prompt mostrará /tmp/foo e não ~temporary_directory .

    
por 07.11.2014 / 13:16
1

Eu percebi que o ZSH tem uma opção chamada AUTO_NAME_DIRS , que diz ao ZSH para expandir os diretórios como eu quero.

Acabei de ter setopt autonamedirs no shell e definir a variável env. e funcionou :)

    
por 07.11.2014 / 11:33