我的 .bash_profile 中有以下内容(来自类似的问题这里:
PROMPT_COMMAND='pwd2=$(sed "s:\([^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '
但是,如果当前目录位于 .dir 内(例如 ~/.vim/bundle/),则提示符仅显示 .:
chris@DeathStar:/U/c/./bundle$
我希望它为所有目录名保留 1 个字符,除非它有一个点,在这种情况下它会显示两个,如下所示:
chris@DeathStar:/U/c/.v/bundle$
如果我还有像这样表示的主目录就更好了~
:
chris@DeathStar:~/.v/bundle$
有任何想法吗?
答案1
这似乎可以解决问题,.
为捕获添加一个可选:
PROMPT_COMMAND='pwd2=$(sed "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '
为了“更好”:
PROMPT_COMMAND='pwd2=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '