各位大神, 我用的是 spacemacs.
我在 .py 文件中是可以自动补全的, 但在OrgSrc 中无法自动补全, company-diag 显示全是 nil, 必须手动打开 company-mode, 然后 手动调用 M-x company-anaconda 进行自动补全.
我在论坛上看了相关的帖子, 以下这篇跟我的问题很类似.
但那个解决方案是直接改动官方的 .el 文件, 我知道自己的斤两不足以解决这个问题
另外奇怪的是, 我在 c, cpp, js 的 OrgSrc 中均能正常自动补全, 所以我感觉有点奇怪.
也就是说我的 python-mode 配置肯定有问题.
所以, 我想请教各位大神有没有什么打补丁的方法, 强制使 OrgSrc 中 python-mode 打开 company-mode 以及自动出来 company-anaconda(目前是设了一个快捷键, 但味道就不对了)
可以试试 emacs jupyter ,可以补全,不用进到 edit buffer 就可以补全。但是,恕我直言,使用体验并不好,不会比 jupyter lab 更好用。当然如果你的代码块都不长的话就还好。
我主要使用 org-mode 来写笔记心得日记等, 已经配置好很多 latex, html 模板了, 用了好多年写了很多东西了, 所以不可能用 jupyter lab了, 被捆绑了 可惜.
主要是为了使用某些软件我把 macOS 从原来的10.11升级到 10.15, 然后就出现这个问题了!!
不过你的这个思路很好, 我看看把 company-anaconda 加入 org-mode 的补全中, 效果如何吧
不用造轮子了,emacs jupyter 是个插件,你搜索一下。装上以后用 jupyter 代码块就行了。记得用同一个 session,这样就可以在所有相同 session 的代码块补全
org-edit-special(C-c ')里面不能补全还是
是的, 仅仅(C-c ')里不能补全, 仅仅是 python-mode, 而 (C-c ')里 c, cpp, js 都可以补全
而在普通的 .py 文件里也可以补全
在org-edit-special(C-c ')里面 company-mode 没开启, 即使我手动开启, company-diag 中 company-backends 显示也是 nil, 也要手动输入函数 company-anaconda 来补全
刚刚试了一下,确实不行,感觉 spacemacs 哪里又有 bug 了,可以报个 issue
我安装了 emacs-jupyter, 跑了几个 demo, 感觉还行.
不过他的官方 readme 中没有说明具体怎么补全, 我是要怎么操作呢
用补丁的方法解决了
在配置中加上这句即可
(spacemacs|add-company-backends :backends company-anaconda :modes python-mode)
其他 company-XXX 类似
估计是 company 载入顺序出了问题