使用当前工作目录的 Zsh 提示符

使用当前工作目录的 Zsh 提示符

在 bash 中我将 PROMPT 设置如下

PS1="$(scutil --get ComputerName) \W\\$ "

我只看到计算机名称和我所在当前目录的名称,而不是完整路径和 $ 符号。

my-computer my-folder$

我的问题是如何将我的 zsh 提示符设置为与 bash 提示符一样。我一直在谷歌上搜索,但找到的解决方案并不完全符合我的要求。

答案1

查看扩展提示序列简单快捷的退出手册页的部分内容,zsh位于man zshmisc

此提示字符串PS1='%m %1d$ '显示机器名称 ( %m) 和当前路径的尾随部分 ( %1d)。

答案2

对我来说,最佳的组合版本是这样的:

PS1='%n@%m %~$ '

%n 是登录的用户

%m 是机器名称

如果路径以 HOME 开头,则 %~ 提供相对于 HOME 的路径。

我的情况是这样的:

我就是这样的

手册页有更多信息。我尝试在这里用更简单的术语来表达。!:D

答案3

仅显示后面跟着符号的目录%,例如:

/usr/local%

输入以下内容~/.zshrc(如果文件不存在则创建):

PROMPT='%~%# '

%~显示当前目录,但您的 HOME 目录将被替换为~

/usr/local% cd
~% pwd
/Users/7stud
% cd erlang_programs 
~/erlang_programs% pwd
/Users/7stud/erlang_programs
~/erlang_programs% cd /opt/local
/opt/local% 

这使得提示简短而甜蜜。

文档说%#将显示一个%符号,但如果您使用特权,例如使用命令su,则它将显示一个#符号。当我使用 时sudo,它仍然显示一个%符号。

答案4

在我看来

PS1='%~: '

~/.zshrc 中的任何位置都是最干净/最简单的。

PS1='%~ $: '

也挺好的。

相关内容