Fish shell中是否有类似Zsh的路径替换?

时间:2015-09-11 20:38:48

标签: fish

我在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文档中,要么。

1 个答案:

答案 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的开箱即用版本的这一部分完全替换掉。为清楚起见,这只是一个部分示例。