#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 это небольшая тема, которая делает это.