La respuesta a continuación con solo un par de votos es, en mi opinión, correcta. La carga automática en ./config/fish/functions solo parece funcionar si hay una función por archivo.
mc_electron
Respuestas:
360
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 .
También tenga en cuenta que en fish un alias es solo un contenedor shellscript alrededor de una función.
user456584
@ user456584 ... y eso es malo, porque no puedes hacerlo alias local "set -l";-(
13
Solo una nota de en qué archivo poner esto. Puse el mío ~/.config/fish/config.fishpara que se cargue cada vez que ejecuto un terminal.
Ira Herman
¿No necesitamos citar "$argv"para manejar argumentos con espacios como lo hacemos con bash "$@"?
kyb
@kyb, no, el pescado es más inteligente que una fiesta como esa. En realidad, TODAS las variables en peces son matrices. Vaya a las variables de Shell y desplácese hacia abajo hasta la subsección Arrays
glenn jackman
117
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
Después de crear la función, puede hacer 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.
Lucretiel
1
alias foo="echo bar"fue, con mucho, la solución más fácil
Ronnie el
16
si no hay config.fish en ~ / .config / fish / , hágalo .
allí puedes escribir tu función.function name; command; end
Si agrega un en abbrlugar de aliasuno, obtendrá una mejor autocompletar. En peces abbrcoincide más estrechamente con el comportamiento de un alias bash.
abbr -a gco git checkout
Will -add una nueva abbreviación gcoque se expande a git checkout.
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.
Respuestas:
Solo úsalo
alias
. Aquí hay un ejemplo básico: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 .
fuente
alias local "set -l"
;-(~/.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.fuente
funced
. Por ejfunced 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:
Para eliminarlo
fuente
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ácilfunction name; command; end
fuente
Guarde sus archivos como
~/.config/fish/functions/{some_function_name}.fish
y deberían cargarse automáticamente cuando comience a pescar.fuente
fish comienza ejecutando comandos en ~ / .config / fish / config.fish. Puede crearlo si no existe:
y guardarlo con
:wq
paso 1. crear un archivo de configuración (como .bashrc)
paso 2. solo escribe tu alias así;
fuente
Si agrega un en
abbr
lugar dealias
uno, obtendrá una mejor autocompletar. En pecesabbr
coincide más estrechamente con el comportamiento de un alias bash.Will
-a
dd una nuevaabbr
eviacióngco
que se expande agit checkout
.Aquí hay una demostración en video de las funciones de autocompletado resultantes
fuente
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
luego
tiene funciones definidas por el usuario en la consola y personalizadas en el mismo orden.
fuente
hacer una función en ~ / .config / fish / funciones llamada mkalias.fish y poner esto en
y esto creará alias automáticamente.
fuente