Сколько драгоценного времени вы тратите на рутинные переходы по сложным и длинным путям в файловой системе? Постоянный набор или копирование команд типа cd /home/user/projects/awesome-project/src/backend/utils/helpers может быть утомительным. А что, если в одном проекте десятки поддиректорий, и приходится полагаться на медленное автодополнение команды cd?

Представляем zoxide — интеллектуальную замену стандартной команды cd, которая автоматически запоминает все директории, в которые вы когда-либо переходили. Теперь достаточно ввести z и часть имени папки, и Linux-утилита мгновенно перенесет вас в нужное место, даже если путь был крайне длинным. zoxide работает значительно быстрее, чем cd с автодополнением, и непрерывно обучается на ваших привычках, предлагая наиболее релевантные варианты.

🟢 Установка zoxide

Выберите наиболее подходящий для вашей системы способ установки:

Для Ubuntu/Debian:

sudo apt install zoxide

Для Arch Linux:

sudo pacman -S zoxide

Для macOS:

brew install zoxide

Универсальный способ (через curl):

curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash

После успешной установки необходимо инициализировать zoxide в вашей оболочке. Добавьте соответствующую строку в файл конфигурации (.bashrc или .zshrc):

eval "$(zoxide init bash)"  # для bash
eval "$(zoxide init zsh)"   # для zsh

Для применения изменений перезапустите терминал или выполните команду source ~/.bashrc (или source ~/.zshrc, в зависимости от вашей оболочки).

🟢 Базовое использование (интуитивно и быстро)

zoxide спроектирован быть максимально простым в использовании, превосходя cd по скорости и удобству:

Переход в директорию:

Работает аналогично обычной команде cd, но с функцией обучения:

z ~/projects/awesome

Быстрый переход по части пути:

Теперь достаточно ввести лишь часть имени нужной директории:

z awesome

zoxide самостоятельно определит, куда вы хотели попасть, основываясь на вашей истории и частоте использования.

Выбор из нескольких совпадений:

Если zoxide находит несколько подходящих директорий, он предложит интерактивный выбор:

z awesome
> 1  /home/user/projects/awesome-project
> 2  /home/user/tests/awesome-library

Просто введите номер (1 или 2), чтобы перейти в нужную папку.

Просмотр часто используемых папок:

Для отображения всей базы часто посещаемых директорий используйте:

zoxide query

➕ Преимущества zoxide

  • Скорость: Одна короткая команда вместо длинных и сложных путей.
  • Самообучение: Система анализирует ваши действия, запоминает наиболее посещаемые папки и предлагает их в первую очередь.
  • Интерактивность: В случае неопределенности, zoxide предоставляет удобный список совпадений для выбора.
  • Кросс-оболочка: Поддерживается в различных оболочках, включая bash, zsh, fish, PowerShell, и даже на Windows.

➖ Недостатки zoxide

  • Требует установки: Необходима первоначальная установка и инициализация.
  • Привыкание: Потребуется некоторое время, чтобы привыкнуть использовать z вместо cd, однако этот процесс обычно проходит очень быстро.
  • Пустая база: При первом использовании база данных zoxide пуста. Начните активно перемещаться по директориям, чтобы накопить статистику.

🔴 Киллер-фичи zoxide

1. Прыжок по подстроке:

zoxide способен перемещаться, основываясь на части имени директории, даже если вы посещали ее давно или она находится глубоко в структуре. Например, если вы работали с директориями /var/log/nginx, /etc/nginx/sites-available и /home/user/nginx-config:

z nginx

zoxide предложит наиболее часто используемый или последний посещенный вариант.

2. Исключение нежелательных папок:

Если вам больше не нужна определенная директория в базе данных zoxide (например, старый проект), вы можете легко удалить ее:

zoxide remove /old/project

3. Переменные окружения для настройки:

Вы можете тонко настроить поведение zoxide с помощью переменных окружения. Например, для интерактивного выбора при нескольких совпадениях (поведение по умолчанию) можно задать параметры утилиты fzf (если она установлена):

export _ZO_FZF_OPTS="--height 40% --layout reverse"

4. Команда zi для интерактивного выбора с предпросмотром:

Если у вас установлена утилита fzf, вы можете использовать команду zi для более продвинутого интерактивного выбора с удобным предпросмотром:

zi

Эта команда покажет все папки в вашей базе zoxide и позволит быстро выбрать нужную.

Когда что использовать?

  • ➡️ zoxide (или z): Идеален для повседневной навигации, особенно если вы активно работаете с множеством проектов и часто переключаетесь между директориями.
  • ➡️ cd: Используйте для перехода в совершенно новые папки, которых еще нет в базе zoxide, или в скриптах, где требуется предсказуемое поведение.
  • ➡️ cd —: Для быстрого возврата в предыдущую директорию.

Лайфхак:

Вы можете создать алиас alias cd='z', если хотите полностью заменить команду cd. Однако рекомендуется сохранить cd для использования в скриптах, а в интерактивном режиме применять z. Это обеспечит гибкость и предсказуемость в bash-скриптах и позволит пользоваться преимуществами zoxide в повседневной работе.

Ссылка на GitHub-репозиторий zoxide

Теперь вместо утомительного cd /home/user/projects/... вы просто набираете z awesome и мгновенно оказываетесь в нужной директории. Это значительно повышает продуктивность, особенно когда число проектов велико, а их имена длинные и труднозапоминаемые. Такая автоматизация навигации — ключ к более эффективной работе в Linux.