0

目前,我的zsh提示$'%2~ %%'用于输出当前和上一个目录,然后才显示%为我的输入提示。例如,如果我在/Users/david/Documents/Code/project,我的提示将显示:

Code/project %

但是,如果我备份到Code目录中,则会显示一个波浪号:

~Documents/Code %

我试图fish通过替换其prompt_pwd函数中提供的正则表达式并传递给sed. 默认情况下,该函数如下所示:

function prompt_pwd --description 'Print the current working directory, shortend to fit the prompt'
  echo $PWD | sed -e "s|^$HOME|~|" -e "s|^/private||" -e 's-\([^/]\)[^/]*/-\1/-g'
end

目前,这会输出当前目录的全名,但会将所有其他目录截断为一个字符(并替换$HOME为波浪号)。我试图弄清楚我可以提供什么正则表达式来复制我在 zsh 中所做的事情。

4

1 回答 1

2

我建议:

echo $PWD | sed -e "s|^$HOME/|~|" -e 's-.*/\([^/]*/[^/]*\)-\1/-'
于 2013-06-10T21:40:29.227 回答