Next: Compiler error messages, Previous: Changing load-path, Up: Common requests [Contents][Index]

### 5.18 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 `.emacs`:

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

  When this is done, Emacs creates a Unix domain socket named `server` in `/tmp/emacsuserid`. See `server-socket-dir`.

  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

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

      # sh command:
      EDITOR=emacsclient ; export EDITOR

- Normal 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 by `emacsclient`, Emacs will switch to it; otherwise `emacsclient` will exit, signaling the calling program to continue.

  There is an alternative version of ‘`emacsclient`’ called ‘`gnuserv`’, written by Andy Norman (see Packages that do not come with Emacs). ‘`gnuserv`’ uses Internet domain sockets, so it can work across most network connections.

  The most recent ‘`gnuserv`’ package is available at

  http://meltin.net/hacks/emacs/

Next: Compiler error messages, Previous: Changing load-path, Up: Common requests [Contents][Index]