为什么ZSH Shell不能改变提示符?

4

我在切换到 zsh 前使用的是 bash。

在我的 ~/.zsh 文件中,我有 export PS1="\w ~ ",但它没有反映出提示的更改。我希望我的提示显示类似于 Documents/Rails_App/views ~

我已经打开了一个新的选项卡并重新打开了应用程序。


双引号在执行export命令时允许扩展,因此您的提示符不再包含\w字符串,而是包含在执行export行时\w字符串的值。尝试使用export PS1='\w ~'。祝你好运。 - shellter
自动加载的文件是/.zshrc而不是/.zsh。 - Filip
你们两个都是正确的。 - Beast_Code
4个回答

8
PROMPT='%n@%m:%~%#'

这段文字是关于it技术的,讲述如何设置Zsh的一级提示符号。可以使用PROMPTprompt或者PS1进行设置。

Zsh使用不同于Bash的转义字符,最显著的区别在于Zsh%而非\。与Bash中的\w相对应的是%~

如果将以下代码放入~/.zshrc文件中,则可实现设置:

PROMPT='%n@%m:%~%#'
PROMPT='%~ ~'

注意:通常在Zsh或者Bash中,没有必要使用export PROMPT


如果不起作用,很可能是因为Oh-My-Zsh已经为PROMPT提供了自己的设置。所以你需要确保在Oh-My-Zsh被调用后再设置PROMPT

如果你使用了Oh-My-Zsh附带的模板,应该在这行代码之后设置:

source $ZSH/oh-my-zsh.sh

3

在 Debian 发行版上。

从标准源安装 zsh 后,打开 .zshrc 文件,在其中添加注释 #prompt adam1 并重新加载设置 source ~/.zshrc

现在添加自定义提示符:PROMPT='Greetings %n '

图片:zsh 自定义提示符


请将以下有关编程的内容从英语翻译成中文。只返回翻译后的文本,请勿添加代码图像/截图。直接在答案中格式化代码。 - swag2198

2
我的问题是我过去一直使用~/.zprofile而不是~/.zshrc,这在Mac上应该是等效的,因为Terminal是一个登录shell,但PROMPT变量要么被忽视,要么被覆盖。一旦我将它移动到~/.zshrc中,它就正常工作了。供参考的~/.zshrc文件内容:
PROMPT='%F{yellow}%n@%m: %F{white}[%T] %F{cyan}%1d $ %F{reset}'

太好了!现在只要有人能解释一下为什么(不通过一个新问题,拜托;就在这个回答里加上几句话),那就太棒了! - Sam

0

在zsh中使用 _PROMPT:

export _PROMPT='%d ~ '

1
不行,仍然没有期望的输出。 - Beast_Code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接