如何在鱼壳中定义别名?

问题描述:

我想在鱼中定义一些别名。显然,它应该可以在如何在鱼壳中定义别名?

~/.config/fish/functions 

来定义他们,但他们没有得到自动加载,当我重新启动外壳。有任何想法吗?

+0

下面的答案只有几个票,在我看来是正确的。在./config/fish/functions中自动加载似乎只在每个文件有一个函数时才起作用。 – 2015-08-11 13:52:54

只需使用alias。这里有一个基本的例子:

# Define alias in shell 
alias rmi "rm -i" 

# Define alias in config file 
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

有兴趣的人可能想了解更多关于鱼别名的信息the official manual

+2

另请注意,在鱼中,别名仅仅是一个函数的shellcript包装。 – user456584 2013-05-06 21:09:57

+0

@ user456584 ...这样做很糟糕,因为你不能做'别名本地'设置-l“';-( – nus 2014-04-18 13:43:55

+3

只需记下哪个文件来放置它。我把它放在'〜/ .config/fish/config.fish'因此每次运行终端时都会加载它 – 2016-02-01 22:41:06

这就是我如何定义一个新功能foo,运行它并永久保存它。

[email protected]~> function foo 
        echo 'foo was here' 
       end 
[email protected]~> foo 
foo was here 
[email protected]~> funcsave foo 
+0

感谢Jerub由于某种原因,funcsave出现错误: troff:致命错误:无法打开'/ usr/share/fish/man/save_function.1':没有这样的文件或目录 – armandino 2010-05-04 05:41:36

+6

你也可以使用'funced'编辑函数,例如'funced foo'。 – Dennis 2013-05-22 14:56:50

+11

运行'funcsave {some_function_name}'将它保存在'〜/ .config/fish/functions/{some_function_name} .fish' – Hjulle 2014-08-22 08:48:03

  1. 如果没有在〜/的.config /鱼/config.fish,做到这一点。
  2. 那里你可以写你的功能。 function name command end

将文件另存为~/.config/fish/functions/{some_function_name}.fish,他们应该得到自动加载,当你开始鱼。

对于后人,鱼别名只是功能:

$ 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” 
+6

创建函数后,可以执行'funcsave foo',这会将函数保存到'〜/ .config/fish/functions/foo.fish'中,鱼会自动加载它第一次从新会话中调用。 – Lucretiel 2015-10-26 14:58:47

+0

'别的s foo =“回显栏”是迄今为止最简单的解决方案 – Ronnie 2016-01-26 18:33:13

正确地从〜/的.config /鱼加载功能/功能

你可能只设置ONE函数里面的文件名和文件名与函数名相同+ add .fish exten锡永。

这种方式改变文件的内容加载中打开终端功能(注意一定的延迟,可能会出现〜1-5s)

这样,如果你编辑或者通过命令行

function name; function_content; end 

然后

funcsave name 

您在控制台中具有用户定义的功能并且按照相同的顺序进行自定义。

使放入〜/ .config /鱼/函数调用mkalias.fish函数,把这个

function mkalias --argument key value 
    echo alias $key=$value 
    alias $key=$value 
    funcsave $key 
end 

,这将自动创建别名。

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

step1。使配置文件(如.bashrc)

config.fish

step2。就像这样写下你的别名;

alias rm="rm -i"

打开vim .config/fish/conf.d/omf.fish,绑定你的bash定义并重启fish终端。