create emacs alias that starts in background?
bash, emacs, emacs23, linux, unix
Solution
Instead of calling `/usr/bin/emacs-snapshot` directly, write a script that calls `/usr/bin/emacs-snapshot` in the background and then returns:
#!/bin/sh
case $# in
0) /usr/bin/emacs-snapshot &
*) /usr/bin/emacs-snapshot "$@" &
esac
Then you call the script in the ordinary way; it will launch a background emacs process and return immediately.
If you want to get fancy you can use `/bin/bash` and `disown` the process after the `esac` (get the pid with `$!`).
Problem
I have an alias in bash that runs emacsclient if emacs daemon is already running and start emacs otherwise. However, in the event that a fresh instance of emacs is fired up, can I make it run in the background so I can still use that terminal (or close it)? In my bash profile, I have ``` alias ec="/usr/bin/emacsclient.emacs-snapshot -n -c -a /usr/bin/emacs-snapshot" ``` And I might be at the terminal and type ``` $ ec newfile ``` If emacs daemon is not already running, is there an alias I can create to make the line above do the equivalent of ``` $ emacs newfile & ``` instead of ``` $ emacs newfile ``` (I should also mention that I am using Linux Ubuntu and emacs-snapshot is assigned to the alias, 'emacs'). Thanks much!