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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.