我的fill-column
设置为80
(setq-default fill-column 80)
但是这样一来,org-mode
中的代码块的头部声明也被强行换行了,如图:
由于:result
声明被换行了,所以在执行脚本时无法直接输出执行结果。
请问如何在设定fill-column
的情况下,保证src-head
部分不换行,如下:
#+BEGIN_SRC python :session :python /Users/tilabs/.conda/envs/tensorflow/bin/python :exports both :results output
我能想到的一种解决办法是用 visual-line 模式。另外还可以手动把header 分成较短的几行,用下列:
#+header: :session ...
M-q (org-fill-paragraph
) 是正常的吧?
#+BEGIN_SRC python
#+HEADER: :session
#+HEADER: :python /Users/tilabs/.conda/envs/tensorflow/bin/python
#+HEADER: :exports both
#+HEADER: :results output
print('hello,you')
import os
import sys
import json
import tensorflow as tf
#+END_SRC
#+RESULTS:
错误提示为:
ModuleNotFoundError: No module named 'tensorflow'
好像#+HEADER: :python /Users/tilabs/.conda/envs/tensorflow/bin/python
这部分声明没有起作用。
此外,即便没有指定python
解析器,也无法输出内容,如下:
#+BEGIN_SRC python
#+HEADER: :exports both
#+HEADER: :results output
print('hello,world')
#+END_SRC
#+RESULTS:
: None
被什么强行换行了?
看不明白什么意思?你的意思是 M-q
(org-fill-paragraph
) 还会改 BEGIN_SRC
所在的行么?
M-q
会将所有的段落wrap 掉,同时也会把较长的src-block
的头部声明也一起wrap
掉,比如,
应该是这样的
#+BEGIN_SRC python :session :python /Users/tilabs/.conda/envs/tensorflow/bin/python :exports both :results output
但是现在被分为两行,变成:
#+BEGIN_SRC python :session :python /Users/tilabs/.conda/envs/tensorflow/bin/python :exports
both :results output
光标放在+HEADER: :python ~/........
处C-c C-c
也是不行
et2010
10
试一下其他参数是否起作用。应该尽量把问题拆开,逐个攻破。放在一起可能会搞不清真正的问题出在哪里。
fontux
11
查看一下 fill-paragraph-function
变量。
Emacs 和 Org 的版本多少,用了哪些包,建议用 emacs -q
启动。
这里的重点是 org-fill-paragraph
,不是 M-q
,我这里是正常的,如果你那边有问题的话,你应该 M-x org-submit-bug-report
。
您好,请问你最后搞定了嘛,我也想用orgmode记录tf,谢谢!
我是通过一个snippet解决的,如下:
# -*- mode: snippet -*-
# name: insert tensorflow code in orgmode
# key: tfs
# --
#+BEGIN_SRC python :session :python ~/.conda/envs/tensorflow/bin/python :exports both :results output
$1
#+END_SRC
如果想输出文件
# -*- mode: snippet -*-
# name: python src block with python with file result
# key: !pf
# --
#+BEGIN_SRC python :python ~/.conda/envs/tensorflow/bin/python :exports both :results file :var fname="${1:`(sangjee/buffer-basename)`}/${2:imagename}.png"
${3:import numpy as np
import matplotlib.pyplot as plt}
${4:#start your code}
plt.savefig(fname)
return fname
#+END_SRC
使用snippet之后,本人没有换行问题了。