我是Emacs的一个新手。 我与RedHat Linux上的emacs-24.1的工作,并试图评估一个elisp的表达。 我想要的emacs做的是不启动的emacs本身来评估elisp的表达。 我尝试不同的事情
emacs --eval '(+ 2 3)'
我不知道Emacs是计算表达式,但结果没有在控制台中显示和emacs窗口出现。 接下来,我想这
emacsclient --eval '(+ 2 3)'
Emacs的客户期待的服务器。 它无法找到服务器,并因此引发错误(找不到插座。启动服务器等)。 所以,我发起了一个服务器端(server-name是服务器),然后跑掉再次emacsclient
emacsclient --server-file=SERVER -e '(+ 2 3)'
此时,emacs的计算的表达式并打印在控制台的结果。 这是因为Emacs是使用现有的服务器来计算表达式。 现在,我的服务器没有运行时获得的一个问题。
emacsclient --server-file=ANOTHER_SERVER -e '(+ 2 3)' -a emacs
这一次,我没有得到在控制台上的任何错误。 Emacs的推出,因为-a的一个新的窗口,(我的.emacs中有(服务器启动)命令和服务器名称设置为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.
我不知道如何在此进行。 正如我所说的,我的目标是不启动的emacs来评估一个elisp的表达。 可能吗?