emacs版本是28.0.50, 系统是Ubuntu18.04.2,最近刚入org-mode的坑,但是遇到了两个问题,求解:
- 执行
eval-buffer
后,报错Invalid syntax read: #
, 我以为是什么地方多打了#号,但是找了一下没找到,我怀疑这是emacs版本的bug,不知道有没有大神解答一下。
-
<s + Tab
不能自动产生SRC block,不知道为什么,按下Tab键后没有任何反应。非常感谢帮助!
emacs版本是28.0.50, 系统是Ubuntu18.04.2,最近刚入org-mode的坑,但是遇到了两个问题,求解:
eval-buffer
后,报错Invalid syntax read: #
, 我以为是什么地方多打了#号,但是找了一下没找到,我怀疑这是emacs版本的bug,不知道有没有大神解答一下。<s + Tab
不能自动产生SRC block,不知道为什么,按下Tab键后没有任何反应。非常感谢帮助!eval-buffer
是用在 elisp 代码buffer,在org-mode中执行当然会报错。提示很清楚:Invalid syntax read: #
,首行的 #
是Invalid syntax,因为这是org-mode的注释语法,而非elisp代码。看上去您想实践emacs配置的文学编程。执行org-mode中的lisp代码有两种方式:
C-c C-c
,会执行当前区块代码。适合当下的调试。init.el
配置org-babel,参见 elisp - Can I use org-mode to structure my .emacs or other .el configuration file? - Emacs Stack Exchange您可以先执行 org-version
查看org-mode的版本。org 9.2之后,代码区块的tab补全需要手动启用Org Tempo library
(require 'org-tempo)
建议善用搜索。不过想要准确地描述问题,需要先了解emacs的一些基本概念,知道如何查看当前emacs及各种package的版本(很多问题是版本不兼容造成的)。emacs学习曲线陡峭,不过私以为值得。欢迎加入。
Welcome and happy hacking emacs!
非常感谢!!SRC block的问题按照解答已经解决了,init.el的配置我再去试一下。
我不知道你的 init.el
文件怎么写的,我也是使用org文件管理配置,我的org文件在 ~/emacs.d/my/myinit.org
,我的 init.el
只有一句话(init.el
文件在~/emacs.d/init.el
):
;; 读取配置文件
(org-babel-load-file (expand-file-name (concat user-emacs-directory "my/myinit.org")))
修改了 org文件
的配置后,在 init.el
的 buffer 运行 eval-buffer
。
或者 C-x C-e
一下 (org-babel-load-file (expand-file-name (concat user-emacs-directory "my/myinit.org")))
楼主测试下,会重新载入所有配置。
如果是简单少量的配置,直接在org文件里面的配置语句使用 C-x C-e
就行了。
至于 <s + Tab
的事情,楼上已经解决了,我个人已经不用这个方式了,全用 yasnippet 了
嗯,已经都解决了,仔细检查后发现还是org文件里面有个地方写错了,多谢!!