Это варьировалось бы дистрибутивом. Например:
Удостоверьтесь что prompt_subst
опция включена. При необходимости добавьте следующую строку к Вашему ~/.zshrc
:
setopt prompt_subst
Это говорит zsh переоценивать строку приглашения каждый раз, что это отображает подсказку. Затем удостоверьтесь, что Вы присваиваетесь PS1
(или некоторая другая переменная, которая используется быстрой темой), как желаемый:
PS1='${PWD/#$HOME/~}'
Одинарные кавычки защищают специальные символы такой как $
от того, чтобы быть оцененным, когда Вы устанавливаете переменную.
Хорошо,
Я просто должен выйти из моего $
знаки. Например:
${PWD/#$HOME/~}
\${PWD/#\$HOME/~}
В zsh необходимо использовать %
Escape для этого. Например, вместо ${PWD/#$HOME/~}
(как Ваш пример), просто используйте %~
.
Читать zshall(1)
и ищите ПРОСТЫЕ БЫСТРЫЕ ESCAPE (это слишком длинно для заключения в кавычки здесь).
%~
поднимает. Я также выполняю некоторые функции в подсказке.
– Spencer Rathbun
12.06.2012, 20:57
unsetopt cdable_vars
решил бы проблему переменных среды, вползающих в %~
.
– Gilles 'SO- stop being evil'
13.06.2012, 01:25
В zsh precmd
может делать что угодно (например, устанавливать переменную) перед каждым приглашением:
function precmd() {
current_git_branch=`git rev-parse --abbrev-ref HEAD`
}
http://zsh.sourceforge.net/Doc/Release/Functions.html
Это не так. t так необходим для текущего каталога, как в исходном вопросе, но может быть полезен для людей, которые находят этот вопрос для других случаев.
(precmd предназначен только для zsh — в bash есть $PROMPT_COMMAND
.)