Fish shell: 带有最后一个参数的变量

Fish shell: variable with last argument

什么鱼 shell 相当于 mkdir -p foo/bar/baz/quux && cd $_

我知道 $history[1],但这里我只需要上一个命令的最后一个参数。

Fish 对此没有捷径,您将不得不重复该论点。

或者,如果它用于交互使用,请按 alt-up 循环浏览旧参数。

不幸的是,fish 不支持最后一个参数变量。

一种高效的交互方式是创建目录:

> mkdir -p foo/bar/baz/quux

然后键入 cd 和路径的第一个字符。

> cd f

此时鱼可能会自动建议整个路径。如果没有,您可以按 alt-up 进行历史令牌搜索,它一定会找到它。

执行此操作的脚本方法是:

set path foo/bar/baz/quux && mkdir -p $path && cd $path

我还发现缺少 $_ 很烦人。一个(有点老套的)解决方案是创建一个这样的函数:

function cdl
    echo $history[1] | read --array result
    cd $result[-1]
end

现在您可以键入 cdl 而不是 cd $_ 来切换到您刚刚创建的目录。

作为suggested in another thread Alt+. 在光标输入处循环先前命令的参数:

mkdir -p ~/fish/previous/arg/demo
cd 
#  ^ hit Alt + .
cd ~/fish/previous/arg/demo