Me gustaría definir algunos alias en peces. Aparentemente debería ser posible definirlos en
~/.config/fish/functions
pero no se cargan automáticamente cuando reinicio el shell. ¿Algunas ideas?
Me gustaría definir algunos alias en peces. Aparentemente debería ser posible definirlos en
~/.config/fish/functions
pero no se cargan automáticamente cuando reinicio el shell. ¿Algunas ideas?
Respuestas:
Solo úsalo alias
. Aquí hay un ejemplo 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 crea el archivo ~/.config/fish/functions/rmi.fish
.
A las personas interesadas les gustaría obtener más información sobre alias de peces en el manual oficial .
~/.config/fish/config.fish
para que se cargue cada vez que ejecuto un terminal.
"$argv"
para manejar argumentos con espacios como lo hacemos con bash "$@"
?
Así es como defino una nueva función foo
, la ejecuto y la guardo de forma persistente.
sthorne@pearl~> function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
funced
. Por ej funced foo
.
funcsave {some_function_name}
lo guardará en~/.config/fish/functions/{some_function_name}.fish
Para la posteridad, los alias de peces son solo funciones:
$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
echo bar $argv;
end
Para eliminarlo
$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
funcsave foo
. Esto guardará la función ~/.config/fish/functions/foo.fish
, donde fish la cargará automáticamente la primera vez que se llame desde una nueva sesión.
alias foo="echo bar"
fue, con mucho, la solución más fácil
fish comienza ejecutando comandos en ~ / .config / fish / config.fish. Puede crearlo si no existe:
vim ~ / .config / fish / config.fish
y guardarlo con :wq
paso 1. crear un archivo de configuración (como .bashrc)
config.fish
paso 2. solo escribe tu alias así;
alias rm = "rm -i"
Si agrega un en abbr
lugar de alias
uno, obtendrá una mejor autocompletar. En peces abbr
coincide más estrechamente con el comportamiento de un alias bash.
abbr -a gco git checkout
Will -a
dd una nueva abbr
eviación gco
que se expande a git checkout
.
Aquí hay una demostración en video de las funciones de autocompletado resultantes
Para cargar correctamente las funciones desde ~ / .config / fish / functions
Puede establecer solo UNA función dentro del archivo y el mismo nombre que el nombre de la función + agregar extensión .fish.
De esta forma, el cambio del contenido del archivo vuelve a cargar las funciones en los terminales abiertos (tenga en cuenta que puede producirse un retraso ~ 1-5s)
De esa manera, si edita ya sea por línea de comando
function name; function_content; end
luego
funcsave name
tiene funciones definidas por el usuario en la consola y personalizadas en el mismo orden.