【问题标题】:How to get absolute path on a zsh prompt?如何在 zsh 提示符下获取绝对路径?
【发布时间】:2016-01-06 00:57:42
【问题描述】:

我正在从 bash 切换到 zsh。

我想更新我的新 zsh 提示并四处寻找方法,但我只能通过 oh-my-zsh 找到“解决方案”。

目标:

Location: ~/dir_1/dir_1_1/dir_1_1_1

我有什么:

Location: dir_1_1_1

代码(source)

 PS1='${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[green]%}Location: %c%{$reset_color%}$(git_prompt_info) '

【问题讨论】:

  • dir_1/dir_1_1/dir_1_1_1 不是完整路径。不确定您想要什么,但大多数人使用%~%n~ 而不是%c,其中n 是要显示的尾随组件的数量。无论如何,%c 已被弃用。阅读zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html
  • 感谢@4ae1e1,这正是我想要的。

标签: zsh


【解决方案1】:

要保留原始提示格式(颜色、git 信息和可能在此之前的其他自定义),除了与路径信息相关,您可以将以下内容附加到 ~/.zshrc 的末尾:

PROMPT=${PROMPT/\%c/\%~}

正如@caleb-adams@fend25 所指出的,关键是将%c(只是文件夹名称)替换为%~ 以包含完整路径(或在~ 下时来自$HOME 的绝对路径)。请参阅http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html 了解更多信息

【讨论】:

    【解决方案2】:

    正如上面评论中提到的Horacio Chavez,你想看看这里:http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html,了解如何在 zsh 中更改显示路径的详细信息。

    在这种情况下,如果您正在寻找相对于您的主文件夹的路径,请在您的 zsh-theme 文件中包含 %~。您的提示现在看起来像这样:

    PS1='${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[green]%}Location: %~%{$reset_color%}$(git_prompt_info) '
    

    注意,我只在您的提示中更改了一个字符。 %c 被替换为 %~%c 只会给出你当前的目录 (see the document link above, or here)

    对于完整路径,您可以使用 %/

    【讨论】:

      【解决方案3】:

      将 bash 样式的目录路径添加到提示符的最简单方法。只需将此添加到~/.zshrc

      setopt PROMPT_SUBST
      PROMPT='%n@%m: ${(%):-%~} '
      

      带有路径的部分是${(%):-%~}。可以根据您的生活方式添加颜色:)

      【讨论】:

        猜你喜欢
        • 2011-04-24
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 2019-01-17
        相关资源
        最近更新 更多