Alias ​​polecenie do uruchomienia w tle

25

Chciałbym, aby skrót klawiszowy działał tak:

> e foo.txt

rozwinąć jako

> emacs foo.txt &

Jest prosty w użyciu alias e=emacs, ale jak wstawić &po nazwie pliku? Zdaję sobie sprawę, że użycie tego może być niemożliwe alias, więc zaakceptuję każde rozwiązanie bash. Jeśli potrzebny jest skrypt powłoki, proszę wyjaśnić, jak to działa.

Haczykowaty
źródło
4
Powinieneś użyć emacsclientlub, gnuclientaby otworzyć plik z wiersza polecenia zamiast otwierania nowego emacsdla każdego pliku: emacswiki.org/emacs/EmacsClient
andcoz

Odpowiedzi:

38

Alias ​​w bash nie może zawierać argumentów, ale możesz używać funkcji.

e() { emacs "$@" & }

następnie

e foo.txt

zrobi co chcesz.

AProgrammer
źródło
1
Ma to problem, gdy piszę e foo*w katalogu z jednym foo.cppi foo.hdrugim, tylko jeden z plików zostanie otwarty.
Hooked
4
@Hooked, a następnie użyj "$@"zamiast "$1"w funkcji.
AProgrammer
1
@AProgrammer, który nie działa dla symboli wieloznacznych. Składnia, której używam to: emacs $* &wydaje się, że jeszcze lepszym rozwiązaniem jeste() { command emacs $* & disown }
nazwij