2

Я видел, как это работает со средой 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 для моего пользователя с некоторыми дополнительными каталогами.

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

Спасибо,

2 ответа2

2

Вы также можете использовать 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 .

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .