Alias ​​ein Befehl, der im Hintergrund ausgeführt werden soll


25

Ich möchte, dass eine Tastenkombination so funktioniert:

> e foo.txt

erweitern als

> emacs foo.txt &

Es ist einfach zu benutzen alias e=emacs, aber wie füge ich das &nach dem Dateinamen ein? Mir ist klar, dass die Verwendung von just möglicherweise nicht möglich aliasist. Ich akzeptiere daher jede bash-Lösung. Wenn ein Shell-Skript benötigt wird, erklären Sie bitte, wie es funktioniert.


4
Sie sollten emacsclientoder verwenden gnuclient, um eine Datei über die Befehlszeile zu öffnen, anstatt emacsfür jede Datei eine neue zu öffnen : emacswiki.org/emacs/EmacsClient
andcoz

Antworten:


38

Alias ​​in Bash kann keine Argumente haben, aber Sie können Funktionen verwenden.

e() { emacs "$@" & }

dann

e foo.txt

werde tun was du willst.


1
Dies hat ein Problem, wenn ich e foo*ein Verzeichnis mit beiden foo.cppund eingebe foo.h, wird nur eine der Dateien geöffnet.
Hooked

4
@Hooked, dann verwenden Sie "$@"statt "$1"in der Funktion.
AProgrammer

1
@AProgrammer, der nicht für Platzhalter zu funktionieren scheint. Die Syntax, die ich verwende, ist: emacs $* &und eine noch bessere Lösung scheint zu seine() { command emacs $* & disown }
Name
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.