我想在fish中定义一些别名。显然,应该可以在
~/.config/fish/functions
但当我重新启动shell时,它们不会自动加载。什么好主意吗?
我想在fish中定义一些别名。显然,应该可以在
~/.config/fish/functions
但当我重新启动shell时,它们不会自动加载。什么好主意吗?
当前回答
如果你添加一个缩写而不是一个别名,你会得到更好的自动完成。在fish中,abbr更接近bash别名的行为。
abbr -a gco "git checkout"
将-添加一个扩展到git checkout的新缩写gco。
下面是自动完成功能的视频演示
其他回答
在~/中创建一个函数。Config /fish/ mkalias函数。钓鱼,把这个放进去
function mkalias --argument key value
echo alias $key=$value
alias $key=$value
funcsave $key
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”
如果你添加一个缩写而不是一个别名,你会得到更好的自动完成。在fish中,abbr更接近bash别名的行为。
abbr -a gco "git checkout"
将-添加一个扩展到git checkout的新缩写gco。
下面是自动完成功能的视频演示
正确地从~/.config/fish/functions加载函数
您可以在文件中只设置一个函数,并且文件名与函数名+添加.fish扩展名相同。
这样更改文件内容在打开的终端中重新加载函数(注意可能会出现一些延迟~1-5s)
这样,如果你通过命令行编辑
function name; function_content; end
then
funcsave name
你有用户定义的功能在控制台和自定义在相同的顺序。