如何在鱼壳中创建别名

时间:2017-01-09 09:14:24

标签: fish

我尝试为ls创建一个别名(基本上应该映射到ls -lah) 我尝试了以下代码,但它不起作用:

function ls

ls -lah

end

funcsave ls

但是当我打电话给它时,我得到了这样的信息: 函数'ls'立即调用自身,这将导致无限循环。 在函数'ls'     呼吁标准输入

3 个答案:

答案 0 :(得分:3)

您正在寻找的是command命令。

我还建议将任何参数(存储在$argv中)传递给别名命令。

所以你的例子应该是:

function ls
  ls -lah $argv
end

要通过简单的命令完成所有这些操作,您只需使用alias命令。

alias ls "command ls -lah"


请注意,通常别名不会为您提供有助于 fish 的友好性的好的自动完成建议。这种特殊情况是一个例外,因为函数和原始命令具有相同的方式,但是,无论如何,这里有两种获得完成的方法:

  • 您可以使用complete命令告诉 fish 您的别名使用与别名命令相同的完成次数。
    balias插件 作为alias的替代方案,并且可以做到这一点。

  • fish 还提供abbr命令。它的工作方式略有不同,实际上会将缩写命令扩展为命令行中的完整命令,然后 fish 就会没有问题,为您提供所知的所有自动完成建议。

答案 1 :(得分:2)

您需要command关键字。另外,将函数的参数传递给ls

function ls
    command ls -lah $argv
end

答案 2 :(得分:0)

如果您需要设置ls的别名,则上述答案都可以。 但是,鱼已经有ls -lah的命令,即la