Frage

Ich möchte einige Aliase in Fisch definieren. Offenbar soll es möglich sein, sie zu definieren, die in

~/.config/fish/functions

, aber sie bekommen nicht automatisch geladen, wenn ich die Shell neu zu starten. Irgendwelche Ideen?

War es hilfreich?

Lösung

Just Verwendung alias. Hier ist ein einfaches Beispiel:

# 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

Dieser letzte Befehl erstellt die Datei ~/.config/fish/functions/rmi.fish.

Interessierte können mehr über Fisch-Aliase, um herauszufinden, in das offizielle Handbuch .

Andere Tipps

Dies ist, wie ich eine neue Funktion foo definieren, führen Sie es, und es beharrlich speichern.

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

Für die Nachwelt Fisch-Aliase sind nur Funktionen:

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

Um es zu entfernen

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
  1. , wenn es nicht config.fish in ~ / .config / Fisch / , es machen.
  2. da Sie Ihre Funktion schreiben können .function name command end

Speichern Sie Ihre Dateien als ~/.config/fish/functions/{some_function_name}.fish , und sie sollten automatisch geladen werden, wenn Sie Fisch starten.

So laden Funktionen richtig von ~ / .config / Fisch / Funktionen

Sie können nur dann gesetzt ONE Funktion in Datei und Dateinamen der gleichen wie Funktionsname + .fish Erweiterung hinzufügen.

Auf diese Weise ändert Dateiinhalte Funktionen in geöffneten Terminals neu zu laden (eine gewisse Verzögerung beachten auftreten können ~ 1-5s)

Auf diese Weise, wenn Sie bearbeiten entweder durch Kommandozeilen

function name; function_content; end

dann

funcsave name

Sie haben benutzerdefinierte Funktionen in der Konsole und benutzerdefinierte in der gleichen Reihenfolge gemacht.

Fisch beginnt mit Kommandos in ~ / .config / Fisch / config.fish Ausführung. Sie können es schaffen, wenn es nicht vorhanden ist.

Schritt 1. Make-Konfigurationsdatei (wie .bashrc)

config.fish

Schritt 2. schreiben Sie einfach Ihren Alias ??wie folgt;

alias rm = "rm -i"

Wenn Sie einen abbr anstelle eines alias hinzufügen werden Sie besser auto-complete. In Fisch abbr paßt genauer das Verhalten eines Bash-Alias.

abbr -a gco git checkout

Wird eine neue -aeviation abbr gcodd dass ERWEITERT git checkout.

Hier ist eine Demo-Video der resultierenden automatischen Vervollständigung Funktionen

Erstellen Sie eine Funktion in ~ / .config / Fisch / Funktionen aufgerufen mkalias.fish und setzen diese in

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

und dies wird Aliase automatisch erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top