web-dev-qa-db-fra.com

Comment définir un alias dans une coquille de poisson?

Je voudrais définir quelques alias dans les poissons. Apparemment, il devrait être possible de les définir dans

~/.config/fish/functions

mais ils ne sont pas chargés automatiquement lorsque je redémarre le shell. Des idées?

175
armandino

Utilisez simplement alias. Voici un exemple de base:

# 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

Cette dernière commande crée le fichier ~/.config/fish/functions/rmi.fish.

Les personnes intéressées voudront peut-être en savoir plus sur les alias de poisson dans le manuel officiel .

311
Bozhidar Batsov

C'est ainsi que je définis une nouvelle fonction foo, l'exécute et la sauvegarde de manière persistante.

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
113
Jerub

Pour la postérité, les pseudonymes de poissons ne sont que des fonctions:

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

Pour l'enlever

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
52
glenn jackman
  1. s'il n'y a pas config.fish dans ~/.config/fish /, faites-le.
  2. là vous pouvez écrire votre fonction .function name command end
16
seaslee

Enregistrez vos fichiers en tant que ~/.config/fish/functions/{some_function_name}.fish et ils devraient se charger automatiquement lorsque vous commencez à pêcher.

14
martisj

Pour charger correctement les fonctions de ~/.config/fish/functions

Vous pouvez uniquement définir [~ # ~] une fonction [~ # ~] dans le fichier et le nom du fichier de la même manière que la fonction nom + extension .fish.

De cette façon, les fonctions de rechargement du contenu du fichier sont rechargées dans les terminaux ouverts (notez qu'un certain retard peut se produire ~ 1-5s)

De cette façon, si vous éditez en ligne de commande

function name; function_content; end

ensuite

funcsave name

vous avez des fonctions définies par l'utilisateur dans la console et personnalisées dans le même ordre.

10
pawelkl

fish commence par exécuter des commandes dans ~/.config/fish/config.fish. Vous pouvez le créer s'il n'existe pas.

étape 1. faire un fichier de configuration (comme .bashrc)

config.fish

étape 2. écrivez simplement votre alias comme ceci;

alias rm = "rm -i"

8
CookAtRice

Si vous ajoutez un abbr au lieu d'un alias, vous obtiendrez un meilleur auto-complétion. Dans le poisson abbr correspond plus étroitement au comportement d'un alias bash.

abbr -a gco git checkout

Volonté -add un nouveau abbreviation gco qui se développe en git checkout.

Voici une démo vidéo des fonctionnalités de saisie semi-automatique résultantes

2
Tobias Mühl

créer une fonction dans ~/.config/fish/functions appelée mkalias.fish et la mettre dans

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

et cela créera automatiquement des alias.

1
Mike