【问题标题】:Is there a Zsh-like path replacement in Fish shell?Fish shell 中是否有类似 Zsh 的路径替换?
【发布时间】:2015-09-11 20:38:47
【问题描述】:

我正在 OS X 中试用 Fish shell,想知道是否有与我认为在 Zsh 中相同的路径替换功能,即 p>

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 文档中找到任何关于“路径替换”的内容。

【问题讨论】:

标签: fish


【解决方案1】:

显然 Fish 不支持开箱即用的路径替换。

我通过在~/.config/fish/functions调用cd.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

这对于习惯了 Zsh 但确实使问题中的示例有效的人来说可能并不完美。

注意:Fish 已经有自己的 cd 函数版本,因此最好将这部分作为 Fish 的开箱即用版本,而不是完全替换它。为了清楚起见,这只是部分示例。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多