Alias ​​perintah untuk dijalankan di latar belakang


25

Saya ingin pintasan keyboard berfungsi seperti itu:

> e foo.txt

untuk memperluas sebagai

> emacs foo.txt &

Ini mudah digunakan alias e=emacs, tetapi bagaimana cara memasukkan &setelah nama file? Saya menyadari itu tidak mungkin menggunakan hanya alias, jadi saya akan menerima solusi bash. Jika skrip shell diperlukan, tolong jelaskan cara kerjanya.


4
Anda harus menggunakan emacsclientatau gnuclientuntuk membuka file dari command-line alih-alih membuka yang baru emacsuntuk setiap file: emacswiki.org/emacs/EmacsClient
andcoz

Jawaban:


38

Alias ​​di bash tidak dapat memiliki argumen, tetapi Anda dapat menggunakan fungsi.

e() { emacs "$@" & }

kemudian

e foo.txt

akan melakukan apa yang Anda inginkan.


1
Ini memiliki masalah ketika saya mengetik e foo*direktori dengan keduanya foo.cppdan foo.h, hanya satu file yang akan terbuka.
Hooked

4
@ Hooked, lalu gunakan "$@"alih-alih "$1"dalam fungsi.
Pemrogram

1
@AProgrammer yang sepertinya tidak berfungsi untuk wildcard. Sintaks yang saya gunakan adalah: emacs $* &dan solusi yang lebih baik tampaknyae() { command emacs $* & disown }
nama
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.