LinuxCommandLibrary

emacsclient

emacsclient

TLDR

Open a file in an existing Emacs server (using GUI if available)

$ emacsclient [path/to/file]
copy


Open a file in console mode (without an X window)
$ emacsclient --no-window-system [path/to/file]
copy


Open a file in a new Emacs window
$ emacsclient --create-frame [path/to/file]
copy


Evaluate a command, printing the output to stdout, and then quit
$ emacsclient --eval '([command])'
copy


Specify an alternative editor in case no Emacs server is running
$ emacsclient --alternate-editor [editor] [path/to/file]
copy


Stop a running Emacs server and all its instances, asking for confirmation on unsaved files
$ emacsclient --eval '(save-buffers-kill-emacs)'
copy

SYNOPSIS

emacsclient [options] files ...

DESCRIPTION

This manual page documents briefly the emacsclient command. Full documentation is available in the GNU Info format; see below. This manual page was originally written for the Debian GNU/Linux distribution, but is not specific to that system.

emacsclient works in conjunction with the built-in Emacs server.

You can either call emacsclient directly or let other programs run it for you when necessary. On GNU and Unix systems many programs consult the environment variable EDITOR (sometimes also VISUAL) to obtain the command used for editing. Thus, setting this environment variable to 'emacsclient' will allow these programs to use an already running Emacs for editing. Other operating systems might have their own methods for defining the default editor.

For emacsclient to work, you need an already running Emacs with a server. Within Emacs, call the functions "server-start" or "server-mode". (Your ".emacs" file can do this automatically if you add either "(server-start)" or "(server-mode 1)" to it.)

When you've finished editing the buffer, type "C-x #" ("server-edit"). This saves the file and sends a message back to the emacsclient program telling it to exit. The programs that use EDITOR wait for the "editor" (actually, emacsclient) to exit. "C-x #" also checks for other pending external requests to edit various files, and selects the next such file.

If you set the variable "server-window" to a window or a frame, "C-x #" displays the server buffer in that window or in that frame.

OPTIONS

Most options follow the usual GNU command line syntax, with long options starting with two dashes ("-").

+line[:column]

Go to the specified line and column. A missing column is treated as column 1. This option applies only to the next file specified.

-a, --alternate-editor=COMMAND

if the Emacs server is not running, run the specified shell command instead. This can also be specified via the ALTERNATE_EDITOR environment variable. If the value of ALTERNATE_EDITOR is the empty string, run "emacs --daemon" to start Emacs in daemon mode, and try to connect to it.

-c, --create-frame

create a new frame instead of trying to use the current Emacs frame

-F, --frame-parameters=ALIST

set the parameters of a newly-created frame.

-d, --display=DISPLAY

tell the server to display the files on the given display.

-e, --eval

do not visit files but instead evaluate the arguments as Emacs Lisp expressions.

-f, --server-file=FILENAME

use TCP configuration file FILENAME for communication. This can also be specified via the EMACS_SERVER_FILE environment variable.

-n, --no-wait

returns immediately without waiting for you to "finish" the buffer in Emacs. If combined with --eval, this option is ignored.

-nw, -t, --tty

open a new Emacs frame on the current terminal

-s, --socket-name=FILENAME

use socket named FILENAME for communication. This can also be specified via the EMACS_SOCKET_NAME environment variable.

-V, --version

print version information and exit

-H, --help

print this usage information message and exit

EXIT STATUS

Normally, the exit status is 0. If emacsclient shuts down due to Emacs signaling an error, the exit status is 1.

COPYING

This manual page is in the public domain.

SEE ALSO

The program is documented fully in Using Emacs as a Server available via the Info system.

AUTHOR

This manual page was written by Stephane Bortzmeyer <bortzmeyer@debian.org>, for the Debian GNU/Linux system (but may be used by others).

Copied to clipboard