From 086c1e54e6fb5c52b0185ef30af61fac28056033 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 6 Apr 2020 12:12:45 +0300 Subject: [PATCH] =?utf8?q?=D0=90=D0=BB=D0=B8=D0=B0=D1=81=D1=8B=20=D0=B8?= =?utf8?q?=D0=BC=D1=91=D0=BD=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE?= =?utf8?q?=D1=80=D0=B8=D0=B9=20=D0=B2=20zsh?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Стал я тут что-то часто перемещаться между директориями разных проектов или частей проекта. Даже со всеми автодополнениями это может занимать ощутимое время. Так и хочется сделать некий алиас на директорию. 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 ) Этот пример я взял из документации к этой функе. Сам не использую, ибо пока нет таких сложных переходов, да и квадратные скобки (их набор) напрягают. -- 2.50.0