Оценить выражение emacs lisp в командной строке

Я новичок в Emacs. Я работаю с emacs-24.1 в Redhat Linux и пытаюсь оценить выражение elisp. Я хочу, чтобы emacs вычислял выражение elisp без запуска самого emacs. Я пробую разные вещи

emacs --eval '(+ 2 3)'

Я не знаю, оценивает ли emacs выражение, но результат не отображается на консоли, и появляется окно emacs. Далее я попробовал это

emacsclient --eval '(+ 2 3)'

Клиент Emacs ожидает сервер. Он не может найти сервер и, следовательно, выдает ошибку (не может найти сокет. Запустить сервер и т. Д.). Итак, я запустил сервер (server-name is SERVER) и снова запустил emacsclient

emacsclient --server-file=SERVER -e '(+ 2 3)'

На этот раз emacs оценил выражение и напечатал результат на консоли. Это потому, что emacs использует существующий сервер для оценки выражения. Теперь у меня возникает проблема, когда сервер не работает.

emacsclient --server-file=ANOTHER_SERVER -e '(+ 2 3)' -a emacs

На этот раз я не получаю никакой ошибки на консоли. Emacs запускает новое окно из-за -a (в моем .emacs есть команда (server-start) и имя сервера установлено в ANOTHER_SERVER). Но тогда emacs пытается отредактировать файл (+ 2 3). Это показано на строке режима. Я в замешательстве. emacsclient --help показал мне это

-e, --eval              Evaluate the FILE arguments as ELisp expressions

и руководство Emacs говорит об этом.

'-e'
'--eval'
Tell Emacs to evaluate some Emacs Lisp code, instead of visiting some files.
When this option is given, the arguments to emacsclient are interpreted as a
list of expressions to evaluate, not as a list of files to visit.

Я не знаю, как поступить в этом. Как я уже сказал, моя цель - оценить выражение elisp без запуска emacs. Является ли это возможным?

Ответы на вопрос(2)

Ваш ответ на вопрос