新的 Fish-Shell 别名将被忽略

新的 Fish-Shell 别名将被忽略

如中所解释的https://stackoverflow.com/a/2763014/2891692 我在配置文件中创建了很多别名~/.config/fish/config.fish 并且它有效。

我今天添加的每个新别名都不起作用。

无效别名的示例:

alias bla  = "cd ~/Desktop" 
alias bla2  = "ls -a" 

在此输入图像描述

但我今天之前添加的别名。例如: alias gitStatus="git status"

在此输入图像描述

完整~/.config/fish/config.fish在这里:

function fish_greeting
     echo 'try nr 5'
end
alias bla2  = "ls -a" 
alias gitStatus="git status"

每次尝试我都会更新欢迎消息。这有效

我该如何解决这个问题?

错误

如果使用alias bla = "cd ~/Desktop"

bla
Command 'bla' not found, did you mean:
  command 'bls' from deb bacula-sd (9.4.2-2ubuntu5)
...

如果别名的类型部分首先是红色的。但这不是一个错误(首先让我困惑)

操作系统:

Kubuntu 20.04
KDE Plasma Version: 5.18.8
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.13.0-41-generic
OS Type: 64-bit

答案1

aliasinfish接受以下两种形式之一的参数:

  • 作为两个参数,名称和代码(csh 语法)
  • 作为一个参数,将=名称和代码分开(ksh 语法)

在您的情况下,因为 周围有空格=,所以将其作为三个参数传递给alias,而它无法理解。

事实上它应该打印一个错误:

别名:预期 <= 2 个参数;得到了 3

所以:做

alias bla "cd ~/Desktop" 
alias bla2 "ls -a" 

或者

alias bla="cd ~/Desktop" 
alias bla2="ls -a" 

相关内容