我在OS X中尝试了 Fish shell,并且想知道是否存在与我认为的 Zsh中相同类型的路径替换功能,即
user@machine ~> % cd /usr/www/site1/current/log
user@machine /usr/www/site1/current/log
%> cd site1 site2
/usr/www/site2/current/log
user@machine /usr/www/site2/current/log
%>
该示例是从SlideShare Why Zsh is Cooler than Your Shell中获取并自定义的。
我在Fish中尝试过,但它似乎不起作用,至少使用相同的语法。我还没有找到任何关于"路径替换"在Fish文档中,要么。
答案 0 :(得分:5)
显然Fish不支持开箱即用的路径更换。
我通过在名为~/.config/fish/functions
的{{1}}中创建一个简单的自定义函数来解决问题:
cd.fish
对于习惯于使用Zsh但确实在问题中起作用的人来说,这可能并不完美。
注意:Fish已经拥有自己的function cd
if test (count $argv) -eq 2
builtin cd (echo $PWD|sed -e "s/$argv[1]/$argv[2]/")
else
builtin cd $argv
end
end
功能版本,因此最好将Fish的开箱即用版本的这一部分完全替换掉。为清楚起见,这只是一个部分示例。