gpt4 book ai didi

macos - 固定宽度的 bash 提示符

转载 作者:行者123 更新时间:2023-11-29 09:49:34 29 4
gpt4 key购买 nike

我想将我的 bash 提示设置为固定宽度,并弥补 $ 之前的空格差异,因此无论长短,我的提示都保持相同的宽度:

[name@host] ~/Directory/Dir...Another/LastDir $ 
[name@host] ~/Directory(branch) $

目前,在一个较短的目录路径中,我的提示看起来像这样:

[name@host] ~/Directory(branch) $ 

更深层次的目录路径如下所示:

[name@host] ~/Directory/Dir...Another/LastDir $ 

您可以看到我在中间截断了 PWD,这样我就可以看到路径的起​​点和终点。我想补上 $ 之前的差额。

这是我当前的提示:

# keep working directory to 30 chars, center tuncated
prompt_pwd() {
local pwd_symbol="..."
local pwd_length=30
newPWD="${PWD/#$HOME/~}"
[ ${#newPWD} -gt ${pwd_length} ] && newPWD=${newPWD:0:12}${pwd_symbol}${newPWD:${#newPWD}-15}
}
# set prompt
prompt_color() {
PROMPT_COMMAND='prompt_pwd;history -a;title_git'
PS1="${WHITEONMAGENTA}[\u@\h]${MAGENTA} \w\$(parse_git_branch) ${MAGENTABOLD}\$${PS_CLEAR} "
PS1=${PS1//\\w/\$\{newPWD\}}
PS2="${WHITEONTEAL}>${PS_CLEAR} "
}

在我的搜索中,我找到了 A Prompt the Width of Your Term它确实做了一些填充,但无法让它为这个特定的提示工作。

最佳答案

如果您的路径太短 ([ ${#newPWD} -le ${pwd_length} ]),您可以使用 printf(1) 来扩展它。

printf -v newPWD "%-*s" $pwd_length "$newPWD"

这将使 $newPWD 中的字符串左对齐,字段宽度为 $pwd_length

printf(1) 内置于 bash 中,因此运行每个提示符不会太昂贵。

关于macos - 固定宽度的 bash 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923432/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com