Вычислить выражение emacs lisp в командной строке

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

emacs --eval '(+ 2 3)'

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

emacsclient --eval '(+ 2 3)'

Клиент Emacs ожидает сервер. Он не смог найти сервер и, следовательно, выдал ошибку (не может найти сокет. запустить сервер и т. д. ). Итак, я запустил сервер (сервер -имя СЕРВЕР )и снова запустил 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 ), а имя сервера -установлено на ДРУГОЙ _СЕРВЕР ). Но тогда 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. Является ли это возможным?

8
задан Cœur 25 January 2017 в 14:25
поделиться