Alias ​​un comando para ejecutar en segundo plano


25

Me gustaría que un atajo de teclado funcione así:

> e foo.txt

para expandirse como

> emacs foo.txt &

Es fácil de usar alias e=emacs, pero ¿cómo inserto &después del nombre del archivo? Me doy cuenta de que puede que no sea posible usar solo alias, así que aceptaré cualquier solución bash. Si se necesita un script de shell, explique cómo funciona.


44
Debe usar emacscliento gnuclientpara abrir un archivo desde la línea de comandos en lugar de abrir uno nuevo emacspara cada archivo: emacswiki.org/emacs/EmacsClient
andcoz

Respuestas:


38

El alias en bash no puede tener argumentos, pero puedes usar funciones.

e() { emacs "$@" & }

luego

e foo.txt

Hará lo que quieras.


1
Esto tiene un problema cuando escribo e foo*en un directorio con ambos foo.cppy foo.hsolo se abrirá uno de los archivos.
Enganchado el

44
@ Enganchado, luego use en "$@"lugar de "$1"en la función.
Programador

1
@AProgrammer que no parece funcionar para comodines. La sintaxis que estoy usando es: emacs $* &y parece ser una solución aún mejore() { command emacs $* & disown }
nombre
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.