Vorrei definire alcuni alias nei pesci. Apparentemente dovrebbe essere possibile definirli in
~/.config/fish/functions
ma non vengono caricati automaticamente quando riavvio la shell. Qualche idea?
Vorrei definire alcuni alias nei pesci. Apparentemente dovrebbe essere possibile definirli in
~/.config/fish/functions
ma non vengono caricati automaticamente quando riavvio la shell. Qualche idea?
Risposte:
Basta usare alias
. Ecco un esempio di 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
Quest'ultimo comando crea il file ~/.config/fish/functions/rmi.fish
.
Le persone interessate potrebbero voler saperne di più sugli alias di pesce nel manuale ufficiale .
~/.config/fish/config.fish
modo che si carichi ogni volta che eseguo un terminale.
"$argv"
per gestire argomenti con spazi come facciamo con bash "$@"
?
Ecco come definisco una nuova funzione foo
, la eseguo e la salvo in modo persistente.
sthorne@pearl~> function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
funced
. Es funced foo
.
funcsave {some_function_name}
lo salverà in~/.config/fish/functions/{some_function_name}.fish
Per i posteri, gli alias di pesce sono solo funzioni:
$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
echo bar $argv;
end
Per rimuoverlo
$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
funcsave foo
. Ciò salverà la funzione in ~/.config/fish/functions/foo.fish
cui i pesci la caricheranno automaticamente la prima volta che viene chiamata da una nuova sessione.
alias foo="echo bar"
era di gran lunga la soluzione più semplice
fish inizia eseguendo i comandi in ~ / .config / fish / config.fish. Puoi crearlo se non esiste:
vim ~ / .config / fish / config.fish
e salvalo con :wq
passo 1. crea file di configurazione (come .bashrc)
config.fish
passo 2. scrivi il tuo alias in questo modo;
alias rm = "rm -i"
Se aggiungi un abbr
anziché un alias
otterrai un migliore completamento automatico. Nei pesci è abbr
più simile al comportamento di un alias bash.
abbr -a gco git checkout
Sarà -a
una nuova abbr
eviazione gco
che si espande a git checkout
.
Ecco una demo video delle risultanti funzioni di completamento automatico
Per caricare correttamente le funzioni da ~ / .config / fish / funzioni
È possibile impostare solo UNO funzione all'interno del file e il nome del file è uguale al nome della funzione + aggiungi estensione .fish.
In questo modo cambiando il contenuto del file si ricaricano le funzioni nei terminali aperti (si noti che potrebbero verificarsi dei ritardi ~ 1-5s)
In questo modo se si modifica da riga di comando
function name; function_content; end
poi
funcsave name
hai funzioni definite dall'utente in console e realizzate nello stesso ordine.