Псевдоним команды для запуска в фоновом режиме

25

Мне бы хотелось, чтобы сочетание клавиш работало так:

> e foo.txt

расширяться как

> emacs foo.txt &

Это просто в использовании alias e=emacs, но как мне вставить &после имени файла? Я понимаю, что это может быть невозможно, используя просто alias, поэтому я приму любое решение Bash. Если нужен скрипт оболочки, объясните, как он работает.

Увлеченные
источник
4
Вы должны использовать emacsclientили, gnuclientчтобы открыть файл из командной строки вместо открытия нового emacsдля каждого файла: emacswiki.org/emacs/EmacsClient
andcoz

Ответы:

38

Псевдоним в bash не может иметь аргументов, но вы можете использовать функции.

e() { emacs "$@" & }

тогда

e foo.txt

будет делать то, что вы хотите.

AProgrammer
источник
1
Это проблема, когда я набираю e foo*каталог с обоими, foo.cppи foo.hоткрывается только один из файлов.
подключено
4
@ Зацепил, затем используй "$@"вместо "$1"функции.
AProgrammer
1
@AProgrammer, который, кажется, не работает для подстановочных знаков. Синтаксис, который я использую, таков: emacs $* &и, кажется, еще лучшее решениеe() { command emacs $* & disown }
имя