C-M-x直接求值函数与Hook调用的差异:Org模式Jupyter代码块Eglot配置问题求助
C-M-x直接求值函数与Hook调用的差异:Org模式Jupyter代码块Eglot配置问题求助
大家好!我最近折腾出了一段代码,能让Eglot在Org文件的Jupyter Python代码块里正常工作,具体代码如下:
(defun org-babel-edit-prep:jupyter-python (babel-info) (setq-local buffer-file-name (expand-file-name (->> babel-info caddr (alist-get :tangle)))) (eglot-ensure)) (defun mb/org-babel-edit:jupyter-python () (interactive) (org-babel-tangle '(4)) (org-edit-special))
我直接在scratch buffer里选中这两个函数,用C-M-x求值之后,打开Org文件使用完全没问题,简直丝滑!
但是我想把这个配置写到我的init文件里,让它每次启动Emacs都自动生效。我当时想当然地把这两个函数挂到了org-mode-hook上,代码是这样的:
(add-hook 'org-mode-hook 'org-babel-edit-prep:jupyter-python) (add-hook 'org-mode-hook 'mb/org-babel-edit:jupyter-python)
结果完全不行,和直接用C-M-x运行的效果天差地别,不仅功能没生效,甚至把Org模式的语法高亮都搞坏了。有没有大佬能帮我分析下这两种方式的差异,教教我正确的配置方式呀?
备注:内容来源于stack exchange,提问作者Uliw
相关产品推荐
相关产品推荐

