Как уменьшить подсказку длинного пути, используя переменные окружения в OS X (расширение '~')

3

Я видел, как это работает со средой gemset, и я хотел бы воспроизвести ее сейчас, когда мне нужно работать с очень отступом пути к каталогу.

В основном у меня была $GEM_HOMEпеременная окружения, указывающая на ~/.rvm/somewhere. Всякий раз , когда я cd ~/.rvm/somewhere/someSubdirмоя подсказка будет: giulio@Giulios-MacBook-Pro:$GEM_HOME/someSubdir.

Это было очень красиво и компактно, и теперь я бы хотел уменьшить размер приглашения oh-my-zsh, так как сейчас я работаю над окном Parallels и у меня очень длинный путь в приглашении,

Я бы хотел:

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

так что когда я в /Users/giulio/Documents/Parallels/Windows\ 8.pvm/Windows\ Disks/C/Usersподсказке просто покажу WIN_HOME/USERS.

В основном я хотел бы получить поведение, ~которое относится к /Users/giulioмоему пользователю с некоторыми дополнительными каталогами.

Как я могу получить это?

Спасибо,

Дон джулио
источник

Ответы:

3

Вы также можете использовать hash -dдля установки статических именованных каталогов (как дома пользователей):

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

Вместо всего пути покажет zsh~WIN_HOME . Вы также можете перейти в этот каталог cd ~WIN_HOME.

Статические именованные~someuser каталоги автоматически создаются для домашних пользователей ( указывает на домашний каталог «someuser»). Также для параметров, которые содержат абсолютные пути (в вашем случае $GEM_HOME) после того, как к ~ним обращаются с последующим именем параметра ( ~GEM_HOME) или если опция AUTO_NAME_DIRSустановлена.

hash -d имеет то преимущество, что вам не нужно загромождать свою среду параметрами.

Для подсказки zsh всегда будет использовать кратчайшее представление пути. Так что если вы установите hash -d temporary_directory=/tmp/foo, подсказка будет отображаться /tmp/fooи нет ~temporary_directory.

Adaephon
источник
2

Я подумал, что у ZSH есть опция с названием AUTO_NAME_DIRS, которая говорит ZSH расширять каталоги так, как я хочу.

Мне просто нужно было setopt autonamedirsв оболочке и установить переменную env. и это сработало :)

Дон джулио
источник