Случайное приглашение Zsh

#shell #command #line #zsh

Вопрос:

Я использую пользовательское приглашение Zsh (без OhMyZsh или чего-либо подобного). То, что я хотел бы сделать,-это в основном создать несколько различных подсказок Zsh и случайным образом изменять их каждый раз, когда я загружаю новую оболочку (аналогично тому fortune , как работает приложение. В случае, если это имеет отношение к делу, мое приглашение Zsh выглядит следующим образом:

 PROMPT='%F{blue}%1~%f %F{cyan}%f '
RPROMPT=$vcs_info_msg_0_
 

Это просто очень простое приглашение, которое отображает текущее местоположение с некоторым настроенным цветом, и правильное приглашение, в котором отображается, в какой ветке я нахожусь, когда в репозитории git.

Комментарии:

1. Я надеюсь, что вы не хотите перемешивать случайные символы , чтобы каждый раз получать разные подсказки, но, например fortune , у вас есть набор предопределенных подсказок, и вы хотите выбрать одну из них случайным образом. В этом случае вы можете сохранить все возможные приглашения в массив и выбрать один элемент массива случайным образом для настройки приглашения. Для дополнительного удовольствия вы можете использовать переменные для цветов в приглашении, а также установить для переменных случайное значение.

2. zsh поставляется с простым менеджером тем паролей со случайной опцией — попробуйте: autoload -Uz promptinit; promptinit а затем prompt random измените приглашение. Вы можете добавить свои собственные темы (см. zshcontrib справочную страницу), но у него нет стандартного способа ограничить случайный выбор, поэтому он будет выбирать из всего перечисленного prompt -l . Чтобы ограничить набор, вы можете немного взломать его и переопределить внутренний массив, используемый кодом, например: prompt_themes=(pws redhat zefram newtheme1 newtheme2)