How do I use an already running Emacs from another window?
emacsclient, which comes with Emacs, is for editing a file using an already running Emacs rather than starting up a new Emacs. It does this by sending a request to the already running Emacs, which must be expecting the request.
Setup:
Emacs must have executed the
server-startfunction for ‘emacsclient’ to work. This can be done either by a command line option:emacs -f server-startor by invoking
server-startfrom init file (see How do I set up an init file properly?):emacs-lisp(if (some conditions are met) (server-start))To get your news reader, mail reader, etc., to invoke ‘
emacsclient’, try setting the environment variableEDITOR(or sometimesVISUAL) to the value ‘emacsclient’. You may have to specify the full pathname of the ‘emacsclient’ program instead. Examples:bash# csh commands: setenv EDITOR emacsclient # using full pathname setenv EDITOR /usr/local/emacs/etc/emacsclient # sh command: EDITOR=emacsclient ; export EDITORNormal use:
When ‘
emacsclient’ is run, it connects to the socket and passes its command line options to Emacs, which at the next opportunity will visit the files specified. (Line numbers can be specified just like with Emacs.) The user will have to switch to the Emacs window by hand. When the user is done editing a file, the user can type C-x # (or M-x server-edit) to indicate this. If there is another buffer requested byemacsclient, Emacs will switch to it; otherwiseemacsclientwill exit, signaling the calling program to continue.
For more information, See Emacs Server in The GNU Emacs Manual.