如何让 Zsh 获得提示符“/home/user@address:/path”?
我在 .zshrc 中运行以下命令,但未成功
PROMPT='%d%>:%{\e[0m%} '
我得到了我的提示
/home/masi
答案1
这可能会给你你想要的东西(用户@主持人:小路):
PROMPT=$'%n@%m:%d%{\e[0m%} '
如果您想限制路径的长度(%>
从您的示例来看),您可以将其限制为仅显示最后 12 个字符,如下所示:
PROMPT=$'%n@%m:%12<...<%d%<<%{\e[0m%} '
如果您实际上并不想要其中嵌入的转义代码(它是典型的 VT100 样式命令,用于清除任何粗体/等格式),您可以将其简化为:
PROMPT='%n@%m:%12<...<%d%<< '
答案2
在这种情况下手动的可能会很有帮助。
我猜你想要的是类似这样的东西:
PROMPT='$HOME@%M:%3~ '
显然,阅读简短手册页中的 4 句话实在是太费劲了。可能是因为它是一个链接:
13. 迅速扩张 13.1 提示序列的扩展 提示序列经历一种特殊形式的扩展。 此类扩展也可以使用 -P 选项 到内置打印。 如果设置了 PROMPT_SUBST 选项,... 提示字符串中可能会识别某些转义序列。 如果设置了 PROMPT_BANG 选项,... 如果设置了 PROMPT_PERCENT 选项,... 13.2 简单的提示转义 13.2.1 特殊字符 %% 一个“%”。 %) 一个“)”。 13.2.2 登录信息 %升 该行 (tty) ... %M 完整的机器主机名。 %米 直到第一个“.”的主机名。整数可以跟在“%”后面以指定 需要多少个主机名组件。使用负整数, 显示主机名的尾部部分。 %n $用户名。 %年 该行 (tty) ... 13.2.3 壳状态 %# 如果 shell 以特权运行,则为“#”,... %? 返回状态... %_ 解析器的状态,...... %日 %/ 当前工作目录 ($PWD)。如果 `%' 后面跟着一个整数,则 指定要显示的 $PWD 尾随组件的数量;零表示 整个路径。负整数指定前导组件, 即 %-1d 指定第一个组件。 %〜 与 %d 和 %/ 相同,但如果 $PWD 以命名目录作为前缀,则该部分 被替换为“~”,后跟目录名称。如果它以 使用 $HOME 时,该部分被“~”替换。 %H %! 当前历史事件编号。 %我 行号... %我 行号... %j 工作数量。 %L $SHLVL 的当前值。 %N 脚本的名称,... %X 文件的名称... %C . %C 尾随组件...这些已被弃用...相当于 %1~ 和 %1/... 13.2.4 日期和时间...忽略... 13.2.5 视觉效果...忽略... 13.3 提示中的条件子字符串...可能有用但被忽略......