Ich möchte einige Aliase in Fischen definieren. Anscheinend sollte es möglich sein, sie in zu definieren
~/.config/fish/functions
Sie werden jedoch nicht automatisch geladen, wenn ich die Shell neu starte. Irgendwelche Ideen?
Ich möchte einige Aliase in Fischen definieren. Anscheinend sollte es möglich sein, sie in zu definieren
~/.config/fish/functions
Sie werden jedoch nicht automatisch geladen, wenn ich die Shell neu starte. Irgendwelche Ideen?
Antworten:
Einfach benutzen 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
.
Interessenten möchten vielleicht mehr über Fisch-Aliase im offiziellen Handbuch erfahren .
~/.config/fish/config.fish
damit sie jedes Mal geladen wird, wenn ich ein Terminal betreibe.
"$argv"
, um Argumente mit Leerzeichen zu behandeln, wie wir es mit Bash tun "$@"
?
So definiere ich eine neue Funktion foo
, führe sie aus und speichere sie dauerhaft.
sthorne@pearl~> function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
funced
. ZB funced foo
.
funcsave {some_function_name}
wird es speichern in~/.config/fish/functions/{some_function_name}.fish
Für die Nachwelt sind Fisch-Aliase nur Funktionen:
$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
echo bar $argv;
end
Es zu entfernen
$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
funcsave foo
. Dadurch wird die Funktion gespeichert ~/.config/fish/functions/foo.fish
, in die der Fisch sie automatisch lädt, wenn er zum ersten Mal aus einer neuen Sitzung aufgerufen wird.
alias foo="echo bar"
war bei weitem die einfachste Lösung
fish beginnt mit der Ausführung von Befehlen in ~ / .config / fish / config.fish. Sie können es erstellen, wenn es nicht vorhanden ist:
vim ~ / .config / fish / config.fish
und speichern Sie es mit :wq
Schritt 1. Konfigurationsdatei erstellen (wie .bashrc)
config.fish
Schritt 2. Schreiben Sie einfach Ihren Alias so.
alias rm = "rm -i"
Wenn Sie ein abbr
anstelle eines hinzufügen, erhalten alias
Sie eine bessere automatische Vervollständigung. Bei Fischen entspricht dies abbr
eher dem Verhalten eines Bash-Alias.
abbr -a gco git checkout
Will -a
dd eine neue abbr
Eviation gco
, die sich erweitert git checkout
.
Hier ist eine Videodemo der resultierenden Funktionen zur automatischen Vervollständigung
Um Funktionen aus ~ / .config / fish / functions richtig zu laden
Sie können nur EINE Funktion innerhalb der Datei und der Namensdatei wie den Funktionsnamen + die Erweiterung .fish hinzufügen.
Auf diese Weise können Sie die Funktionen zum erneuten Laden von Dateiinhalten in geöffneten Terminals ändern (beachten Sie, dass eine Verzögerung von ~ 1-5 Sekunden auftreten kann).
Auf diese Weise, wenn Sie entweder über die Befehlszeile bearbeiten
function name; function_content; end
dann
funcsave name
Sie haben benutzerdefinierte Funktionen in der Konsole und benutzerdefinierte Funktionen in derselben Reihenfolge.