Jawaban di bawah ini dengan hanya beberapa suara adalah, menurut saya benar. Autoloading in ./config/fish/functions hanya berfungsi jika ada satu fungsi per file.
mc_electron
Jawaban:
360
Gunakan saja alias. Inilah contoh dasar:
# 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
Perintah terakhir ini membuat file ~/.config/fish/functions/rmi.fish.
Orang yang tertarik mungkin ingin mengetahui lebih lanjut tentang alias ikan di manual resmi .
Juga perhatikan bahwa pada ikan alias hanya pembungkus shellscript di sekitar fungsi.
user456584
@ user456584 ... dan itu buruk, karena Anda tidak bisa melakukan alias local "set -l";-(
13
Hanya catatan file mana yang akan dimasukkan. Saya memasukkan file saya ~/.config/fish/config.fishsehingga memuat setiap kali saya menjalankan terminal.
Ira Herman
Bukankah kita perlu mengutip "$argv"untuk menangani argumen dengan spasi seperti yang kita lakukan dengan bash "$@"?
kyb
@ Kyb, tidak, ikan lebih pintar daripada bash seperti itu. Sebenarnya, SEMUA variabel dalam ikan adalah array. Pergi ke variabel Shell dan gulir ke bawah ke ayat Array
glenn jackman
117
Inilah cara saya mendefinisikan fungsi baru foo, menjalankannya, dan menyimpannya secara terus-menerus.
sthorne@pearl~>function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
Terima kasih Jerub. Untuk beberapa alasan setelah funcsave, itu memberi saya kesalahan: troff: fatal fatal: tidak dapat membuka `/usr/share/fish/man/save_function.1 ': Tidak ada file atau direktori seperti itu
armandino
7
Anda juga dapat mengedit fungsi menggunakan funced. Misalnya funced foo.
Setelah Anda membuat fungsi, Anda bisa melakukannya funcsave foo. Ini akan menyimpan fungsi ke dalam ~/.config/fish/functions/foo.fish, di mana ikan akan secara otomatis memuatnya saat pertama kali dipanggil dari sesi baru.
Lucretiel
1
alias foo="echo bar"sejauh ini merupakan solusi termudah
Ronnie
16
jika tidak ada config.fish di ~ / .config / fish / , buatlah.
di sana Anda dapat menulis fungsi Anda.function name; command; end
Jika Anda menambahkan abbrbukan, aliasAnda akan mendapatkan pelengkapan otomatis yang lebih baik. Pada ikan abbrlebih dekat mencocokkan perilaku alias bash.
abbr -a gco git checkout
Akan -amenemukan abbreviasi baru gcoyang diperluas ke git checkout.
Jawaban:
Gunakan saja
alias
. Inilah contoh dasar:Perintah terakhir ini membuat file
~/.config/fish/functions/rmi.fish
.Orang yang tertarik mungkin ingin mengetahui lebih lanjut tentang alias ikan di manual resmi .
sumber
alias local "set -l"
;-(~/.config/fish/config.fish
sehingga memuat setiap kali saya menjalankan terminal."$argv"
untuk menangani argumen dengan spasi seperti yang kita lakukan dengan bash"$@"
?Inilah cara saya mendefinisikan fungsi baru
foo
, menjalankannya, dan menyimpannya secara terus-menerus.sumber
funced
. Misalnyafunced foo
.funcsave {some_function_name}
akan menyimpannya di~/.config/fish/functions/{some_function_name}.fish
Untuk anak cucu, alias ikan hanya berfungsi:
Untuk menghapusnya
sumber
funcsave foo
. Ini akan menyimpan fungsi ke dalam~/.config/fish/functions/foo.fish
, di mana ikan akan secara otomatis memuatnya saat pertama kali dipanggil dari sesi baru.alias foo="echo bar"
sejauh ini merupakan solusi termudahfunction name; command; end
sumber
Simpan file Anda sebagai
~/.config/fish/functions/{some_function_name}.fish
dan mereka akan dimuat secara otomatis ketika Anda mulai memancing.sumber
fish memulai dengan menjalankan perintah di ~ / .config / fish / config.fish. Anda dapat membuatnya jika tidak ada:
dan simpan dengan
:wq
Langkah 1. buat file konfigurasi (seperti .bashrc)
Langkah 2. cukup tulis alias Anda seperti ini;
sumber
Jika Anda menambahkan
abbr
bukan,alias
Anda akan mendapatkan pelengkapan otomatis yang lebih baik. Pada ikanabbr
lebih dekat mencocokkan perilaku alias bash.Akan
-a
menemukanabbr
eviasi barugco
yang diperluas kegit checkout
.Berikut ini demo video dari fitur pelengkapan otomatis yang dihasilkan
sumber
Untuk memuat fungsi dengan benar dari ~ / .config / fish / functions
Anda hanya dapat menetapkan SATU fungsi di dalam file dan nama file sama dengan nama fungsi + tambahkan ekstensi .fish.
Dengan cara ini, mengubah isi file memuat kembali fungsi di terminal terbuka (perhatikan beberapa penundaan mungkin terjadi ~ 1-5s)
Dengan begitu jika Anda mengedit dengan commandline
kemudian
Anda memiliki fungsi yang ditentukan pengguna di konsol dan dibuat khusus dalam urutan yang sama.
sumber
buat fungsi di ~ / .config / fish / functions bernama mkalias.fish dan masukkan ini
dan ini akan membuat alias secara otomatis.
sumber