Zsh. Так что же будем настраивать?

Разобравшись с назначением dot-файлов, можно, наконец, подумать о собственно конфигурировании. Процесс этот начнём с того, что отделим зерна от плевел, то есть решим: а какие же именно файлы нужно настроить.

Для начала я оставил бы в покое все файлы из каталога /etc. Почему? Да потому, что во многих дистрибутивах Linux имеются либо предварительно настроенные общесистемные конфиги, либо предусмотрены средства для их автоматического создания и обновления. А во FreeBSD в каталоге /etc принято хранить только профильные файлы общесистемного шелла (сиречь /bin/sh, тогда как настройка пользовательского шелла -- сугубо личное дело пользователя.

Так что ограничиваемся только нашим домашним каталогом. Однако и здесь многое зависит от ОС и дистрибутива. Так, в user-ориентированных дистрибутивах Linux первый кандидат на удаление (или не-копирование) -- файл ~/.zshenv. Конечно, его можно создать в предельно облегчённом виде (например, настройка приёмов неинтерактивной работы здесь абсолютно лишняя). Характерно, что в штатном примере zshenv присутствует только переменная PATH. Но ведь её можно получить из общесистемного /etc/profile, не так ли?

Особенно лишним выглядит ~/.zshenv в тех системах, где предусмотрен какой-либо механизм установки общих переменных -- а это практически все современные user-ориентированные дистрибутивы Linux. Так что при отсутствии ~/.zshenv все необходимое (в актуальном виде) будет браться оттуда. В присутствии же его -- zsh откажется от считывания /etc/profile, в результате чего такие переменные, как локаль, EDITOR, PAGER и тому подобные, придётся определять дополнительно.

А вот во FreeBSD и тех дистрибутивах Linux, которые (как, например, CRUX) не имеют средств автоматизации установки общесистемных переменных, файл ~/.zshenv оказывается практически необходимым. И ниже я попытаюсь обосновать это (а заодно и продемонстрировать, что в нем может содержаться).

Далее, решаем, а нужен ли нам отдельный конфиг для login shell, и если нужен -- то какой из них -- ~/.zlogin или ~/.zprofile. Теоретически, можно обойтись и без того, и без другого. Уж без последнего -- так наверняка, не зря же его нет ни среди штатных примеров, ни среди многочисленных конфигов, которыми поделились с народом активные пользователи zsh.

Не помешает и файл ~/.zlogout -- его возможное содержание также будет рассмотрено позднее.

Остаётся главный (по крайней мере, самый большой) конфиг -- ~/.zshrc. Что с ним делать? На этот вопрос существует несколько ответов.

В прежние времена можно было

  • создать свой ~/.zshrc с нуля;
  • взять один из примеров этого файла и доводить его до ума по собственному разумению;
  • подобрать в сети подходящий конфиг -- благо таковых народ выложил немало.

Нынче же проще всего начать с автоконфигурирования. Именно этим мы и займёмся на следующих страницах.

. .