M-x run-python行不行
不行,仍然只有一个 default
不知道 lispy 有没有这样的功能,就是执行一个大标题时,可以跳过其中的一个小标题下的代码:
# * Title 1
# ** Title 1.1
print "This line will run."
# ** Title 1.2 [skip]
print "Skip this line."
# ** Title 1.3
print "This line will run too."
结果得到
This line will run.
This line will run too.
这个功能对我非常重要,因为我大部分时候是交互式运行代码,有些时候代码有多种替代方案,然后我只运行其中一种(其中一个小标题),但是整体功能都包含在大标题下。
或者一键注释掉小标题下所有内容也行
outshine-comment-subtree-content
in outshine
package
其实我觉得最好还是写成function 在大block里直接调用
一般不敢写函数,我有命名恐惧症
我发现有的时候用 dired 拷贝过来到当前文件夹的文件,lpy eval 的时候仍然是之前文件的路径,好奇怪啊。不知道是哪的毛病,你碰到过这个问题没有?
import os
os.getcwd()
可能没有重启python session吧 你把和lpy以及python process有关的buffer都kill了试试?
重启 python session 也没有用,重启 emacs 有用
我发现真是太白痴了,开始一个新进程只要输入一个不同的进程名字就好了。
这个功能超级有用,比如我现在两套配置,一套对应py2的虚拟环境,使用python作为解释器,一套对应py3的虚拟环境,使用ipython作为解释器,简直了,完胜其它交互 python 环境。
abo-abo 是真正的大神,而且非常容易沟通,提的 issue 一般很快就修复了。有这样一位开发者在emacs阵营真是幸运。
什么时候能把 async eval 的问题解决了,就真的是神器了。
我用ob-ipython不是写程序,而是写文档。本来就是一个一个三五行的小片段,连分支都没有,根本不需要思路。 inline插图是必须的,因为这是文档。
嗯,我也是这样用的,代码短的就用 ob-ipython (scimax),长的就用 lpy。另外 lpy 还有一个使用场合,就是对需要交互式操作的绘图,科学计算等等,非常好用。当然,像你所说的写文档,那是非 org 莫属。
这样说吧,我用 lpy 操作一些外部的绘图程序 mayavi,后处理程序 paraview,以及一些开源有限元都没有问题,溜到飞起,感觉连 jupyter notebook 都不能这么玩。已经远远不止是绘图这么简单了。
其实我只是忍不住安利得有点用力过猛了,
还是根据个人的需要选择最适合自己的工具吧
有的时候需要的变量太多,就要写一长串参数或者做成列表/字典传入函数,函数里在一个个提取,doctoring又要写好多,很麻烦。
确实。。我平常也是直接comment甚至直接改。。
@et2010 你是怎么在spacemacs上安装lpy的,我这样安装了
(defconst ztlevi-programming-packages
'(
(lpy :location (recipe :fetcher github :repo "abo-abo/lpy"))
)
)
(defun ztlevi-programming/init-lpy ()
(use-package lpy))
启动时会报这个错:
Error (use-package): lpy/:catch: Cannot open load file: No such file or directory, function-args
把 function-args 这个包也添加到你的 private layer 里,不用设置
(defun lpy/init-function-args ()
(use-package function-args
:defer t
:init ))
或者也可以加到 dotspacemacs-addtional-packages (好像是这个名字)中。
你碰到的问题的原因是 lpy 没有把 function-args 设为依赖,但是又确实 require 这个包了。
恩,没想到这是个包,rip。然后lpy要怎么开启呢?我看了下好像没有对应的mode诶,在python-mode下搜索它的函数也没有绑定任何快捷键。
我好像是加到 python-mode-hook
中了
(add-hook 'python-mode-hook #'lpy-mode)
可能还有其它的一些注意事项,我在上面的帖子中都提到了
好的,多谢啦
刚刚花了三个小时终于把local/remote的lpy/org-edit-src 整合设置停当
占个坑 吃饭回来上code hhh
code 见
Example:
** DONE Test remote ob-ipython and lpy and anaconda
:PROPERTIES:
:header-args:ipython: :session remote-host-kernel-28595-ssh.json :ipyfile /local/path/test_lpy.png :pydir /ssh:user@host:/path/to/workdir :exports both :results raw drawer
:END:
- lpy and ob-ipython works at remote
- lpy completion through capf works
- company-ob-ipython is slow as hell
- company-anaconda need configuration to work on TRAMP, I dont want to fiddle with it.
#+BEGIN_SRC ipython
# %pylab
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.plot([1, 2, 3, 4])
import seaborn as sns
a = np.array([1, 2, 3])
b = a.T
c = b * 100
#+END_SRC
remote使用方法:在远程server 上执行ipython kernel
, 用print出来的kernel ID (一串数字)替换org properties里的ID,然后在code block上C-c C-c
即可:
- 自动建立到远程kernel的连接
- 弹出一个连接到远程的REPL
这时在code block上C-c ' / org-edit-src-block
会弹出代码编辑窗口
-
(python-shell-send-defun) /... / lpy's eval
都可以将编辑窗口中的代码发送至刚刚打开的REPL -
completion-at-point
会用REPL的环境进行补全