zsh 使用多行声明 PROMPT
zsh declare PROMPT using multiple lines
我想使用多行和注释来声明我的 ZSH 提示符,例如:
PROMPT="
%n # username
@
%m # hostname
\ # space
%~ # directory
$
\ # space
"
(例如 perl 正则表达式的“忽略空白模式”)
我可以发誓我曾经做过这样的事情,但再也找不到那些旧文件了。我搜索了“zsh declare prompt across multiple lines”的变体,但还没有完全找到它。
我知道我可以使用 \ 来续行,但我们最终会得到换行符和空格。
编辑:也许我记错了评论 - 这是 example without comments。
不完全是您要查找的内容,但您不需要在单个作业中定义 PROMPT
:
PROMPT="%n" # username
PROMPT+="@%m" # @hostname
PROMPT+=" %~" # directory
PROMPT+="$ "
可能更接近您想要的是连接数组元素的能力:
prompt_components=(
%n # username
" " # space
%m # hostname
" " # space
"%~" # directory
"$"
)
PROMPT=${(j::)prompt_components}
或者,您可以让 j
标志添加 space 分隔符,而不是将它们放在数组中:
# This is slightly different from the above, as it will put a space
# between the director and the $ (which IMO would look better).
# I leave it as an exercise to figure out how to prevent that.
prompt_components=(
"%n@%m" # username@hostname
"$~" # directory
"$"
)
PROMPT=${(j: :)prompt_components}
我想使用多行和注释来声明我的 ZSH 提示符,例如:
PROMPT="
%n # username
@
%m # hostname
\ # space
%~ # directory
$
\ # space
"
(例如 perl 正则表达式的“忽略空白模式”)
我可以发誓我曾经做过这样的事情,但再也找不到那些旧文件了。我搜索了“zsh declare prompt across multiple lines”的变体,但还没有完全找到它。
我知道我可以使用 \ 来续行,但我们最终会得到换行符和空格。
编辑:也许我记错了评论 - 这是 example without comments。
不完全是您要查找的内容,但您不需要在单个作业中定义 PROMPT
:
PROMPT="%n" # username
PROMPT+="@%m" # @hostname
PROMPT+=" %~" # directory
PROMPT+="$ "
可能更接近您想要的是连接数组元素的能力:
prompt_components=(
%n # username
" " # space
%m # hostname
" " # space
"%~" # directory
"$"
)
PROMPT=${(j::)prompt_components}
或者,您可以让 j
标志添加 space 分隔符,而不是将它们放在数组中:
# This is slightly different from the above, as it will put a space
# between the director and the $ (which IMO would look better).
# I leave it as an exercise to figure out how to prevent that.
prompt_components=(
"%n@%m" # username@hostname
"$~" # directory
"$"
)
PROMPT=${(j: :)prompt_components}