我想到了一个好方法,等明天实现看看。
应该是今天 ,等白天了吧
我想到了一个好方法,等明天实现看看。
应该是今天 ,等白天了吧
这条是不成立的,因为 :session 也可以命名
失察了,的确可以:
#+BEGIN_SRC python :results silent :session session1
foo = 'block1'
#+END_SRC
#+BEGIN_SRC python :results silent :session session2
foo = 'block2'
#+END_SRC
#+BEGIN_SRC python :results output :session session1
print(foo)
#+END_SRC
#+RESULTS:
: block1
不过还是不够灵活。需要把当前块,跟被引用的块放到同一个 session,你仍然不能排除掉 session 中的某些 block,也不能引入其他 session 的 block。
最近装了 Lsp-mode,取消了 Anaconda-mode。发现效果出奇的好,比如在 Org-mode 中
import **
了,都可以在 Edit buffer 中自动补全了。但是不知道为什么一下子可以实现了,是 Python-mode 还是 Lsp-mode。
肯定不是 python mode,那只是负责语法高亮与缩进
你这也太邪乎了,lsp 有 company 后端吗?我试的时候没有见到啊
你补全的时候需要按 tab 吗?
那个后端名字叫什么?
company-capf 估计是这个后端
嗯嗯,好像是这个
没按 Tab 键啊,我也觉得太邪乎了。
你是在 virtualenv 下面安装 python language server 的吗?
啊啊啊! 我忘了一件事啊!
我用 pyenv 来切换 python2 和 python3 的。而 python language server 我只装在 python3 下。 今天要用到 python2 ,于是我切换到 python2,重点是我忘了在 Python2 下安装 python language server
于是像往常一样打开 Org-mode,发现了上述那些事情。虽然 Python2 没装 python language server 但是 Buffer 里有显示 Python Language Server stderr。
总之代码补全只能在 ob-ipython 下成功,单单的 Python session 下没法补全(还是需要定义 Name)。
所以是 ob-ipython 的功劳了?ob-ipython 最近刚刚更新过
但是,因为我也是 scimax 用户,所以没法跟上更新。只能希望 John 能抽空把这个问题解决了:
ob-ipython 的作者已经主动过来联系了,不过可能是 Kitchin 老师最近比较忙,一直都没有更新 scimax。
我装了最新的 ob-ipython ,去掉 Lsp-mode,重新装上 Anaconda-mode 。
Org-mod 的补全还是老样子,需要按 Tab 键。
不需要写 Imports 也可以补全吗?
嗯,不需要再写一遍 import。
所以现在为了良好的文学编程环境就是装 Lsp-mode,Lsp-python。不装 Python language sever。 听起来是不是太魔幻了。
我没看错吧?所以你到底是怎么设置的?
有:
ob-ipython
lsp-mode
lsp-python
没有 python language server 和 anaconda-mode?
我试着把 Lsp-mode 和 Lsp-python 关掉,也能实现。
所以说还是 ob-ipython 的功劳,不知道为什么 spacemacs 需要按 Tab 键。 而 Doom Emacs 却能直接补全。
不好意思哈,虚惊一场:rofl:
能不能查看一下你在 doom 下能够自动补全时的 company-backends
变量?谢谢
还有 doom 应该也是用的 anaconda 吧?