Измените приглашение zsh только на две папки

#macos #terminal #zsh #oh-my-zsh

Вопрос:

Я использую эту oh-my-zsh тему jtriley . Код темы, воспроизведенный ниже, отображает весь путь к каталогу:

 PROMPT="%{$fg_bold[cyan]%}%T%{$fg_bold[green]%} %{$fg_bold[green]%}%d
%{$fg_bold[yellow]%}%% %{$reset_color%}"
 

Я знаю, что есть способы изменить отображаемые каталоги, используя prompt_dir() функцию, следуя инструкциям, подобным этим. Однако, когда я вставляю это ниже приведенного выше кода, я не получаю изменений.

Как я могу изменить файл темы, в котором единственным кодом является приглашение и его цвета?

Ответ №1:

Для этого конкретного случая использования вы можете просто заменить %d на - в первой строке.

Тем не менее, если вы хотите сделать что-то более изысканное, вы можете заменить его на $(prompt_dir) instead и установить параметр PROMPT_SUBST. Обратная косая черта важна, так как это позволяет повторно оценивать функцию при каждом отображении запроса, а не только при $PROMPT назначении.

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

1. Спасибо, первая часть делает то, что мне нужно. Что конкретно вы имеете в виду под 2-м абзацем? Я не понимаю.

2. Вы можете использовать стандартные замены команд, например $(git status) , в командной строке. Однако, поскольку вы используете двойные кавычки вокруг строки запроса, это позволит оценить команду при загрузке файла .zshrc, что, вероятно, не то, что вам нужно. Я думаю, что вы можете проигнорировать часть о PROMPT_SUBST, так как oh-my-zsh устанавливает это по умолчанию. Например, https://github.com/ohmyzsh/ohmyzsh/blob/master/themes/gallifrey.zsh-theme это небольшая тема, которая делает это.