2010-05-04 9 views
107

Me gustaría definir algunos alias en peces. Al parecer, debería ser posible definirlos en¿Cómo se define un alias en la concha de pescado?

~/.config/fish/functions 

pero no consiguen auto cargado al reiniciar la cáscara. ¿Algunas ideas?

+0

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. –

Respuesta

189

Simplemente use 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.

Las personas interesadas pueden encontrar más información sobre los alias de peces en the official manual.

+2

También tenga en cuenta que en fish un alias es solo un contenedor de shellscript alrededor de una función. – user456584

+0

@ user456584 ... y eso es malo, porque no se puede hacer 'alias local" set -l "' ;-( – nus

+3

Solo una nota de qué archivo poner esto. Puse el mío en '~/.config/fish/config.fish' por lo que se carga cada vez que ejecuto un terminal. –

100

Así es como defino una nueva función foo, ejecútala y guárdala persistentemente.

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

Gracias Jerub. Por alguna razón después de funcsave me dio un error: troff: error fatal: no se puede abrir '/ usr/share/fish/man/save_function.1 ': No existe ningún archivo o directorio – armandino

+6

También puede editar funciones con 'funced'. Por ejemplo' funfo foo'. – Dennis

+11

Ejecutando 'funcsave {some_function_name}' se guardará en '~/.config/fish/functions/{some_function_name} .fish' – Hjulle

13
  1. si no hay config.fish en ~/.config/pescado/, que sea.
  2. allí puede escribir su función. function name command end
11

guardar los archivos como ~/.config/fish/functions/{some_function_name}.fish y que debe recibir autocargado cuando se inicia el pescado.

38

Para la posteridad, alias de pescado son sólo funciones:

$ alias foo="echo bar" 
$ type foo 
foo is a function with definition 
function foo 
    echo bar $argv; 
end 

para quitarlo

$ unalias foo 
/usr/bin/unalias: line 2: unalias: foo: not found 
$ functions -e foo 
$ type foo 
type: Could not find “foo” 
+6

Después de crear la función, puede hacer 'funcsave foo'. Esto guardará la función en' ~/.config/fish/functions/foo.fish', donde fish lo cargará automáticamente primera vez se llama desde una nueva sesión. – Lucretiel

+0

'alia s foo = "barra de eco" 'fue de lejos la solución más fácil – Ronnie

9

Para cargar correctamente las funciones de ~/.config/pescado/funciones

Usted puede establecer solo ONE función dentro de archivo y nombre de archivo igual que nombre de función + agregar .fish exten sion.

De esta manera el contenido del archivo cambiando recargan las funciones de los terminales abiertos (nota cierto retraso puede ocurrir ~ 1-5s)

De esta forma si se edita ya sea por línea de comandos

function name; function_content; end 

continuación

funcsave name 

tiene funciones definidas por el usuario en la consola y creadas a medida en el mismo orden.

1

crear una función en ~/.config/funciones llamadas mkalias.fish peces/y poner esto en

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

y esto va a crear alias automáticamente.

1

fish comienza ejecutando comandos en ~/.config/fish/config.fish. Puedes crearlo si no existe.

step1. make configuration file (como .bashrc)

config.fish

step2. solo escribe tu alias de esta manera;

alias rm="rm -i"

0

abierto vim .config/fish/conf.d/omf.fish, unen su golpe define y reinicie el terminal pesquero.

Cuestiones relacionadas