39:  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-start" function for emacsclient to
    work.  This can be done either by a command line option:

      emacs -f server-start

    or by invoking server-start from the .emacs file:

      (if (some conditions are met) (server-start))

    When this is done, Emacs starts a subprocess running a program called
    "server".  "server" creates a Unix domain socket in the user's home
    directory named .emacs_server.

    To get your news reader, mail reader, etc., to invoke emacsclient, try
    setting the environment variable EDITOR (or sometimes VISUAL) to the
    value "emacsclient".  You may have to specify the full pathname of the
    emacsclient program instead.  Examples:

      # csh commands:
      setenv EDITOR emacsclient
      setenv EDITOR /usr/local/emacs/etc/emacsclient  # using full pathname

      # sh command:
      EDITOR=emacsclient ; export EDITOR

  * Normal use

    When emacsclient is run, it connects to the ".emacs_server" socket and
    passes its command line options to "server".  When "server" receives
    these requests, it sends this information on the the Emacs process,
    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 by emacsclient, Emacs will switch
    to it; otherwise emacsclient will exit, signaling the calling program
    to continue.

    NOTE: "emacsclient" and "server" must be running on machines which
    share the same filesystem for this to work.  The pathnames that
    emacsclient specifies should be correct for the filesystem that the
    Emacs process sees.  The Emacs process should not be suspended at the
    time emacsclient is invoked.  emacsclient should either be invoked from
    another X window or from a shell window inside Emacs itself.

    There is an enhanced version of emacsclient/server called "gnuserv" by
    Andy Norman <ange@hplb.hpl.hp.com> which is available in the Emacs Lisp
    Archive (see question 87).  Gnuserv uses Internet domain sockets, so it
    can work across most network connections.  It also supports the
    execution of arbitrary Emacs Lisp forms and does not require the client
    program to wait for completion.