如何在fish shell中创建别名

ner*_*100 3 fish

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

function ls

ls -lah

end

funcsave ls

但当我调用它时,我收到以下消息:

函数“ls”立即调用自身,这将导致无限循环。在标准输入上调用的函数“ls”中

ora*_*nja 5

您正在寻找的是命令command

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

所以你的例子应该是:

function ls
  command ls -lah $argv
end
Run Code Online (Sandbox Code Playgroud)

而要通过一个简单的命令来完成这一切,您只需使用该alias命令即可。

alias ls "command ls -lah"
Run Code Online (Sandbox Code Playgroud)
请注意,通常别名不会为您提供有助于 _fish_ 友好的自动完成建议。这种特定情况是一个例外,因为函数和原始命令具有相同的方式,但除此之外,这里有两种获得完成的方法:
  • 您可以使用该complete命令告诉Fish您的别名使用与别名命令相同的补全。
    balias插件可以作为替代方案alias并做到这一点。

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