鱼壳:将参数附加到现有函数

时间:2018-01-14 16:57:33

标签: shell fish

我想将--group-directories-first添加到ls命令。如果在~/.config/fish/config.fish中我可以定义像这样的别名:

alias ls "ls --group-directories-first"

但它会覆盖fish shell的ls函数定义:

function ls --description 'List contents of directory'
    set -l param --color=auto
    if isatty 1
        set param $param --indicator-style=classify
    end
    command ls $param $argv
end

我可以重新定义ls函数以添加所需的参数:

function ls --description 'List contents of directory'
    set -l param --color=auto --group-directories-first
    if isatty 1
        set param $param --indicator-style=classify
    end
    command ls $param $argv
end

但我不喜欢这个解决方案:我想要的是重新定义ls以便用参数调用前一个ls函数。有没有办法实现它?

2 个答案:

答案 0 :(得分:4)

你可以重命名复制fish的ls功能:

functions --copy ls __fish_ls

然后在你的函数中使用它:

alias ls '__fish_ls --group-directories-first'

答案 1 :(得分:2)

abbr ls" ls --group-directories-first"

...