M. J. Wall has an interesting post entitled How I Use Emacs. Wall’s workflow is a bit unusual—by which I mean different from mine—in that he spends a lot of time in the terminal even though he’s running GUI desktops in Linux and OS X. Sometimes he just wants to edit a file and then return to the terminal. Other times he wants to pop up an Emacs buffer and return to the terminal immediately.
To facilitate that workflow, he has two scripts. One starts Emacs in the terminal window and waits for Emacs to finish before returning to the shell. The other pops up a new Emacs frame and returns to the terminal immediately. An interesting trick that both these scripts use is to call emacsclient
with the -a “”
option. That says that if the Emacs server is not already running, start it and then reattach emacsclient
to it.
As I mentioned, my workflow is different. I always have Emacs running and have a shortcut key to change focus to it so if I’m in a terminal and need Emacs I just press【F6】 to pop into Emacs and do what needs doing. Nonetheless, there is one case where Wall’s technique is useful to me. Usually if I want to edit a file on another machine, I just use tramp
but if I’m ssh
ed into that machine already it’s convenient to just bring up emacsclient
on the remote machine. Wall’s et
script is perfect for that. Even if the remote machine doesn’t have a copy of the et
script installed, it’s simple to call emacsclient
directly
emacsclient -a "" -t file-to-edit
If you use Emacs and ever ssh
into remote machines, this is a technique worth knowing.