在 orgmode 中,碰到 python src block 时,光标移动变得非常卡。我怀疑是移动光标时,minibuffer 同时显示 python 函数的信息(eldoc?)造成的。但我使用下列代码并没有帮助:
(remove-hook 'org-mode-hook #'org-eldoc-load)
### 看样子这个 feature 并不是来自 org-eldoc。
注意我并不想关闭 eldoc,因为它在 orgmode 中有其它的用途,比如显示 src block 的 header arguments。我需要的是关闭显示 src block 内部代码相关信息这个功能
PS: orgmode 是最新版的 org-plus-contrib (9.0.3)
cpu 报告显示是 line-number-at-pos
函数造成的,调用它的函数 python-nav--beginning-of-defun
是属于 emacs 内部的包 python.el
的,这个怎么破?
不是你开了行号,是有个叫 python-nav–beginning-of-defun 的函数里面用到了行号
是的,但是为什么 python.el
需要这个行号?
在 Python buffer 内移动光标很卡估计就是它造成的, 在 org buffer 中更卡了
我试着把 global-eldoc-mode 关闭了,果然症状消失了,因为不再需要调用 python.el 的函数了。但是有什么办法只关闭 src block 的信息显示呢?
et2010
10
没有这个 custom 选项,没办法,自己写了一个 advice。它的作用是不显示 python code block 的 eldoc 信息,不会影响其它语言 code block 的 eldoc 信息显示。需要的同学可以参考,spacemacs 用户可以直接放到你的 user-init 里:
(with-eval-after-load "org-eldoc"
(defun et/no-python-eldoc (oldfun lang)
(when (not (string= "python" lang))
(funcall oldfun lang)))
(advice-add #'org-eldoc-get-mode-local-documentation-function
:around #'et/no-python-eldoc))