Alias ​​une commande à exécuter en arrière-plan


25

J'aimerais qu'un raccourci clavier fonctionne comme suit:

> e foo.txt

se développer comme

> emacs foo.txt &

C'est simple à utiliser alias e=emacs, mais comment insérer le &après le nom de fichier? Je me rends compte que ce n'est peut-être pas possible en utilisant simplement alias, donc j'accepte toute solution bash. Si un script shell est nécessaire, veuillez expliquer comment il fonctionne.


4
Vous devez utiliser emacsclientou gnuclientpour ouvrir un fichier à partir de la ligne de commande au lieu d'en ouvrir un nouveau emacspour chaque fichier: emacswiki.org/emacs/EmacsClient
andcoz

Réponses:


38

L'alias dans bash ne peut pas avoir d'arguments, mais vous pouvez utiliser des fonctions.

e() { emacs "$@" & }

puis

e foo.txt

fera ce que vous voulez.


1
Cela a un problème lorsque je tape e foo*dans un répertoire avec les deux foo.cppet foo.h, un seul des fichiers s'ouvrira.
Hooked

4
@Hooked, puis utilisez "$@"au lieu de "$1"dans la fonction.
AProgrammer

1
@AProgrammer qui ne semble pas fonctionner pour les caractères génériques. La syntaxe que j'utilise est: emacs $* &et une solution encore meilleure semble êtree() { command emacs $* & disown }
nom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.