Я новичок в 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), а для имени сервера задано 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. Является ли это возможным?