我想在fish中定义一些别名。显然,应该可以在
~/.config/fish/functions
但当我重新启动shell时,它们不会自动加载。什么好主意吗?
我想在fish中定义一些别名。显然,应该可以在
~/.config/fish/functions
但当我重新启动shell时,它们不会自动加载。什么好主意吗?
当前回答
我发现之前的回答和评论是不必要的不完整和/或混乱。我至少需要做的是:
创建~ / config /鱼/ config.fish。该文件可以是软链接。 添加行别名myalias echo foo bar。 重启鱼。要确认定义,请尝试输入myalias。试试这个别名。
其他回答
使用别名即可。这里有一个基本的例子:
# Define alias in shell
alias rmi "rm -i"
# Define alias in config file ( `~/.config/fish/config.fish` )
alias rmi="rm -i"
# This is equivalent to entering the following function:
function rmi
rm -i $argv
end
# Then, to save it across terminal sessions:
funcsave rmi
最后一个命令创建文件~/.config/fish/functions/rmi.fish。
感兴趣的人可以在官方手册中找到更多关于鱼类别名的信息。
这就是我如何定义一个新函数foo,运行它,并持久地保存它。
sthorne@pearl~> function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
我发现之前的回答和评论是不必要的不完整和/或混乱。我至少需要做的是:
创建~ / config /鱼/ config.fish。该文件可以是软链接。 添加行别名myalias echo foo bar。 重启鱼。要确认定义,请尝试输入myalias。试试这个别名。
@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