【问题标题】:How to render directory basename in ZSH terminal?如何在 ZSH 终端中呈现目录基名?
【发布时间】:2022-01-07 16:34:20
【问题描述】:

根据对 Monterey 的 Mac OS 更新,它表明新的 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%

【问题讨论】:

    标签: macos terminal zsh


    【解决方案1】:

    试试这个:

    PROMPT='vader %1~%# '
    

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

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

    zshmisc 手册页的提示序列的扩展部分中有一个可用百分比替换的列表。

    【讨论】:

    • 最终使用了PROMPT='vader %1~/ ',但您的回答让我更接近目标,因此我将其标记为已接受。
    猜你喜欢
    • 2012-06-17
    • 2012-05-01
    • 2021-01-13
    • 2015-10-29
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多