2013-08-03 28 views
0

可以从shell启动emacs并告诉它执行lisp函数,使用预定义的lisp代码从shell启动emacs

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代码,打开它。

(顺便说一句,我知道转到线问题可以有不同解决,而无需使用-f但多数民众赞成我的一般问题只是一个例子)

回答

6

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

+0

谢谢。不幸的是,它不是我想要的,例如'emacs --eval'(progn(goto-line 10))'my_file.py'不会达到预期的效果。我寻找的是一种评估文件自身缓冲区中的lisp代码的方式,*加载后。 – flonk

+0

我刚刚在我的文章中编辑命令行排序,以完全按照您的要求进行操作。我只是测试它,它适用于Emacs 24.3.50.7 – jmbr

+0

不错,谢谢! – flonk