У меня есть небольшой файл .zshrc
для настройки моего терминала, и я всегда хотел иметь интересную подсказку, помимо стандартной, но не очень-то старался ее изучить.
Итак, после некоторых исследований я выяснил основы того, как сделать мою маленькую подсказку полезной, не слишком подавляющей и не отвлекающей!
Вот как это выглядит:
Вы можете заметить, что у меня нет типичных вещей, таких как имя пользователя, имя машины или что-то еще, потому что… лично мне это не нужно. Но, прочитав это, вы сможете добавить это сами!
Что вводить
Если вы не знаете, как открыть ваш файл конфигурации, откройте его с помощью vim ~/.zshrc
или code ~/.zshrc
(или любого другого редактора, который вы предпочитаете).
Сначала добавьте эти две строки в .zshrc
:
autoload -Uz vcs_info
precmd() { vcs_info }
Это загрузит систему контроля версий в ваш интерпретатор (вот документация по ней).
Затем нужно добавить следующую строку, которая устанавливает детали ветки Git в подсказку.
zstyle ':vcs_info:git:*' formats '%b '
Этот %b
– переменная имени ветки. Я добавил пробел после нее для форматирования. Вы можете добавить туда другие переменные в строке (вот хороший блог с вариантами), например, информацию о тайниках, имя корневого каталога репозитория, staged changes и т.д.
Теперь добавьте эти две последние строки, чтобы собрать вашу подсказку воедино!
setopt PROMPT_SUBST
PROMPT='%F{green}%*%f %F{blue}%~%f %F{red}${vcs_info_msg_0_}%f$ '
Это выглядит довольно сложно, поэтому позвольте мне разложить все по полочкам.
Цвета!
Когда вы окружаете вещи %F
и %f
, это изменяет цвет переднего плана всего, что находится между ними. Цвет в {курчавые скобки}
– это цвет, который редактируется. В данном случае вы можете видеть зеленый, синий и красный. Подобные вещи есть с %U
и %u
для подчеркивания, %K
и %k
для фоновых цветов, и многое другое (с документацией здесь, прокрутите до раздела “13.2.5 Визуальные эффекты”). По умолчанию ZSH понимает черный, красный, зеленый, желтый, синий, пурпурный, голубой и белый цвета!
Даты и время!
%*
, которое вы видите – это время (в 24-часовом формате, с секундами). Есть и другие варианты, например, %W
для даты. Документация по этому вопросу находится здесь, прокрутите страницу до “13.2.4 Дата и время”.
Каталог!
%~
показывает текущий рабочий каталог и путь к нему. Посмотрите раздел “13.2.3 Состояние оболочки” в документации, если вы хотите заменить его на что-то другое.
Переменная!
Теперь следующая часть – загрузка вашей переменной, ${vcs_info_msg_0_}
. Это поместит вашу переменную ветви, которую мы создали ранее, в красную текстовую обертку.
Последняя $
в конце – это просто для того, чтобы привести пользовательский ввод. Вы можете заменить его на >
или ;
или WOW
или на другие переменные, или на что угодно.
Конец!
Вот вся подсказка, которую вы можете вставить и настроить:
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '%b '
setopt PROMPT_SUBST
PROMPT='%F{green}%*%f %F{blue}%~%f %F{red}${vcs_info_msg_0_}%f$ '
Как только вы сохраните это, запустите source ~/.zshrc
, чтобы загрузить его в терминал (или просто перезапустите терминал/откройте новую вкладку). Поскольку я люблю открывать и редактировать быстро, я добавил эти псевдонимы, чтобы сделать открытие и загрузку быстрее:
alias bp='vim ~/.zshrc'
alias sa='source ~/.zshrc;echo "ZSH aliases sourced."'
А теперь мир да ойста. Надеюсь, это было полезно для вас!