如何在 ZSH 终端中呈现目录基名?

How to render directory basename in ZSH terminal?

根据 Mac OS 对 Monterey 的更新,它表明新的 shell 是 ZSH:

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

更新后我发现 .bash_profile 不再使用了。经过研究我发现我可以引用 .bash_profile 所以我仍然可以通过添加行来使用我的别名:

source ~/.bash_profile

我发现终端的不同之处在于它不使用 PS1,而是使用 PROMPT。更改后:

export PS1='vader ~/${PWD/*\/} '

PROMPT='vader %~%# '

它呈现完整路径。在 .zshrc 文件中,我如何指定只呈现当前目录或 basename 的能力,所以如果我有 github/project/node_modules 的路径,终端将是:

vader ~/node_modules%

试试这个:

PROMPT='vader %1~%# '

现在当当前目录为/Users/vader/github/project/node_modules时,提示会显示为vader node_modules% ;上一个目录,它将变成 vader project% .

请注意,这不包括您之前 PS1 提示中的 ~/。在 shell 中,波浪号用作主目录的快捷方式(例如 /Users/vader),并且可能不是用作指示路径的前导部分已被省略的最佳方式。方括号通常用于:PROMPT='vader [%1d]%# '

zshmisc 手册页的 EXPANSION OF PROMPT SEQUENCES 部分中有一个可用的百分比替换列表。