Eu gostaria de definir alguns apelidos em peixes. Aparentemente, deve ser possível defini-los em
~/.config/fish/functions
mas eles não são carregados automaticamente quando eu reinicio o shell. Alguma ideia?
Eu gostaria de definir alguns apelidos em peixes. Aparentemente, deve ser possível defini-los em
~/.config/fish/functions
mas eles não são carregados automaticamente quando eu reinicio o shell. Alguma ideia?
Respostas:
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 .
~/.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.
sthorne@pearl~> function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
funced
. Por exemplo funced 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:
$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
echo bar $argv;
end
Para removê-lo
$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
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ácil
O fish começa executando comandos em ~ / .config / fish / config.fish. Você pode criá-lo se ele não existir:
vim ~ / .config / fish / config.fish
e salve-o com :wq
passo 1. criar arquivo de configuração (como .bashrc)
config.fish
passo 2. apenas escreva seu apelido assim;
alias rm = "rm -i"
Se você adicionar um em abbr
vez de umalias
obterá o preenchimento automático melhor. No peixe, ele se abbr
aproxima mais do comportamento de um alias de bash.
abbr -a gco git checkout
Vai -a
dd uma nova abbr
eviaçãogco
que se expande para git checkout
.
Aqui está uma demonstração em vídeo dos recursos de preenchimento automático resultantes
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
function name; function_content; end
então
funcsave name
você possui funções definidas pelo usuário no console e personalizadas na mesma ordem.