0

可以从 shell 启动 emacs 并告诉它执行一个 lisp 函数,例如

emacs -f some-lisp-function my_file.py

但是,我也想传递带有参数的 lisp 函数,比如

emacs -f "(goto-line 10)" my_file.py
# --> not working

并且在最好的情况下,还可以传递由多个函数调用组成的更复杂的 lisp 代码,例如

emacs -f "(goto-line 10) (some-other-func some-arg)" my_file.py
# --> not working

有人知道怎么做吗?

编辑:为了澄清这一点,我需要一种方法来评估文件自己缓冲区中的 lisp 代码,然后打开它。

(顺便说一句。我知道 goto-line 问题可以在不使用的情况下以不同的方式解决,-f但这只是我的一般问题的一个例子)

4

2 回答 2

6

试试emacs my_file.py --eval '(progn (goto-line 10) (some-other-func some-arg))'。另请注意,调用 Emacs asemacs +10 my_file.py将在第十行打开文件。

于 2013-08-03T13:17:41.513 回答
2

您可以访问调用 Emacs 的命令行。您可以添加代码来处理您自己的命令行开关。根据您的需要,这可能比--eval. 请参阅http://www.gnu.org/software/emacs/manual/html_node/elisp/Command_002dLine-Arguments.htmlEmacs 自定义命令行参数

于 2013-08-03T17:07:52.260 回答