Алиасы имён директорий в zsh

Что: 086c1e54e6fb5c52b0185ef30af61fac28056033

Когда: 2020-04-06 12:12:45+03:00

Темы: tip zsh

Алиасы имён директорий в zsh

Стал я тут что-то часто перемещаться между директориями разных проектов
или частей проекта. Даже со всеми автодополнениями это может занимать
ощутимое время. Так и хочется сделать некий алиас на директорию. zsh это
позволяет:

    hash -d foo=~/work/foo/bar/baz

и cd ~foo перейдёт куда надо, даже сделает подстановку пути prompt.

Но в zsh есть и гораздо более мощный инструмент когда можно по частям
собирать путь до куда хотим перейти через функу zsh_directory_name_generic.
Делая cd ~[gs:p:s] мы говорим о том, чтобы перейти в git директорию
scratch (gs), нашего пользователя $USER, в поддиректорию myproject (p) и
его documentation (d), задав вот такие настройки:

    local -A zdn_top=(
      g   ~/git
      ga  ~/alternate/git
      gs  /scratch/$USER/git/:second2
      :default: /:second1
    )

    local -A second1=(
      p   myproject
      s   somproject
      os  otherproject/subproject/:third
    )

    local -A second2=(
      p   myscratchproject
      s   somescratchproject
    )

    local -A third=(
      s   top/srcdir
      d   top/documentation
    )

Этот пример я взял из документации к этой функе. Сам не использую, ибо
пока нет таких сложных переходов, да и квадратные скобки (их набор)
напрягают.

оставить комментарий

Сгенерирован: SGBlog 0.34.0