A resposta abaixo com apenas alguns votos é, na minha opinião, correta. O carregamento automático em ./config/fish/functions parece funcionar apenas se houver uma função por arquivo.
Mc_electron
Respostas:
360
Apenas use alias. Aqui está um exemplo básico:
# 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
Este último comando cria o arquivo ~/.config/fish/functions/rmi.fish.
As pessoas interessadas podem descobrir mais sobre apelidos de peixes no manual oficial .
Observe também que, no fish, um alias é apenas um invólucro de shell script em torno de uma função.
User456584 de
@ user456584 ... e isso é para ruim, porque você não pode fazer alias local "set -l";-(
13
Apenas uma nota de qual arquivo colocar isso. Coloquei o meu ~/.config/fish/config.fishpara que ele carregasse toda vez que eu rodava um terminal.
Ira Herman
Não precisamos citar "$argv"para lidar com argumentos com espaços, como fazemos com o bash "$@"?
kyb 18/01/19
@kyb, não, o peixe é mais esperto do que o bash assim. Na verdade, TODAS as variáveis em peixes são matrizes. Ir para variáveis Shell e desça até a subseção Arrays
Glenn Jackman
117
É assim que eu defino uma nova função foo, a executo e a salvo persistentemente.
sthorne@pearl~>function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
Obrigado Jerub. Por alguma razão, depois do funcsave, ele me deu um erro: troff: erro fatal: não é possível abrir `/usr/share/fish/man/save_function.1 ': esse arquivo ou diretório não
existe
7
Você também pode editar funções usando funced. Por exemplo funced foo.
Depois de criar a função, você pode fazer funcsave foo. Isso salvará a função em ~/.config/fish/functions/foo.fishque o fish o carregará automaticamente na primeira vez em que for chamado a partir de uma nova sessão.
26615 Lucretiel
1
alias foo="echo bar"foi de longe a solução mais fácil
Ronnie
16
se não houver config.fish em ~ / .config / fish / , faça-o.
lá você pode escrever sua função.function name; command; end
Se você adicionar um em abbrvez de umalias obterá o preenchimento automático melhor. No peixe, ele se abbraproxima mais do comportamento de um alias de bash.
abbr -a gco git checkout
Vai -add uma nova abbreviaçãogco que se expande para git checkout.
Respostas:
Apenas use
alias
. Aqui está um exemplo básico:Este último comando cria o arquivo
~/.config/fish/functions/rmi.fish
.As pessoas interessadas podem descobrir mais sobre apelidos de peixes no manual oficial .
fonte
alias local "set -l"
;-(~/.config/fish/config.fish
para que ele carregasse toda vez que eu rodava um terminal."$argv"
para lidar com argumentos com espaços, como fazemos com o bash"$@"
?É assim que eu defino uma nova função
foo
, a executo e a salvo persistentemente.fonte
funced
. Por exemplofunced foo
.funcsave {some_function_name}
vai salvá-lo em~/.config/fish/functions/{some_function_name}.fish
Para a posteridade, os aliases de peixes são apenas funções:
Para removê-lo
fonte
funcsave foo
. Isso salvará a função em~/.config/fish/functions/foo.fish
que o fish o carregará automaticamente na primeira vez em que for chamado a partir de uma nova sessão.alias foo="echo bar"
foi de longe a solução mais fácilfunction name; command; end
fonte
Salve seus arquivos
~/.config/fish/functions/{some_function_name}.fish
e eles deverão ser carregados automaticamente quando você começar a pescar.fonte
O fish começa executando comandos em ~ / .config / fish / config.fish. Você pode criá-lo se ele não existir:
e salve-o com
:wq
passo 1. criar arquivo de configuração (como .bashrc)
passo 2. apenas escreva seu apelido assim;
fonte
Se você adicionar um em
abbr
vez de umalias
obterá o preenchimento automático melhor. No peixe, ele seabbr
aproxima mais do comportamento de um alias de bash.Vai
-a
dd uma novaabbr
eviaçãogco
que se expande paragit checkout
.Aqui está uma demonstração em vídeo dos recursos de preenchimento automático resultantes
fonte
Para carregar corretamente funções de ~ / .config / fish / functions
Você pode definir apenas UM função dentro do arquivo e o nome do arquivo da mesma forma que o nome da função + adicionar a extensão .fish.
Dessa forma, alterar o conteúdo do arquivo recarrega as funções nos terminais abertos (observe que pode ocorrer algum atraso ~ 1-5s)
Dessa forma, se você editar por linha de comando
então
você possui funções definidas pelo usuário no console e personalizadas na mesma ordem.
fonte
crie uma função em ~ / .config / fish / functions chamada mkalias.fish e coloque-a em
e isso criará aliases automaticamente.
fonte