我想在fish中定义一些别名。显然,应该可以在

~/.config/fish/functions

但当我重新启动shell时,它们不会自动加载。什么好主意吗?


当前回答

如果没有配置。鱼在~/。Config /fish/,使它。 这里你可以写你的函数。函数名;命令;结束

其他回答

将文件保存为~/.config/fish/functions/{some_function_name}。当你开始钓鱼时,它们应该自动加载。

如果没有配置。鱼在~/。Config /fish/,使它。 这里你可以写你的函数。函数名;命令;结束

@bozhidar-batsov给出了一个绝对完整的答案,帮助人们理解fish中别名/函数的内部工作原理。阅读fish文档中的别名,还有一个-s标志,使用起来非常方便,但我没有看到任何人提到它。

使用funcsave自动将由别名创建的函数保存到fish配置目录中。

定义和保存别名的一行解决方案(例如): 别名cl 'clear' -s。立即跨所有会话工作,并被持久化。

导航到~/。Config /fish/functions/,你会看到cl。鱼文件。

# Defined via `source`
function cl --wraps=clear --description 'alias cl clear'
  clear $argv;
end

Fish首先执行~/.config/ Fish /config.fish中的命令。 如果它不存在,可以创建它:

链球菌~ / . problem /鱼/ problem .鱼

并保存为:wq

步骤1。制作配置文件(如.bashrc)

config.fish

步骤2。就像这样写你的别名;

= rm= rm i

对于后人来说,鱼的别名只是函数:

$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
    echo bar $argv; 
end

移除它

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”