导出org到ascii没有换行符

时间:2014-04-27 16:46:34

标签: emacs elisp org-mode

在组织模式(8.2.5)中是否有任何方法可以导出到ascii而不会在.txt文件的每一行末尾插入换行符?

好心的人应该是:

(setq org-ascii-text-width nil)

但是不接受nil作为org-ascii-text-width的参数。

不优雅的解决方法是:

(setq org-ascii-text-width 1000)

假设我的段落中没有一个长度超过1000个字符。

如果我:

(setq org-ascii-text-width 10000)

我收到错误:

Stack overflow in regexp matcher

2 个答案:

答案 0 :(得分:2)

misc-commands包定义了一个名为goto-longest-line的函数。使用此函数,我们可以定义一个函数,将org-ascii-text-width设置为当前缓冲区中最长行的长度:

(defun org-set-ascii-text-width ()
  (save-excursion (setq org-ascii-text-width
                        (cadr (goto-longest-line (point-min) (point-max))))))

要确保每次保存org-ascii-text-width缓冲区时org-mode都会更新,请将其添加到before-save-hook

(add-hook 'before-save-hook
          (lambda () (if (eq major-mode 'org-mode)
                         (org-set-ascii-text-width))))

misc-commands位于MELPA,可以package-install编辑(在adding MELPA to the list of package archives之后为Emacs包管理器)。

如果您不想安装该软件包,我猜您也可以前往here,抓住goto-longest-line功能并将其添加到.emacs(以及当然,提及原作者的评论。

答案 1 :(得分:0)

这有点令人尴尬:

一起删除org-ascii-text-width - 变量可以满足我的需要:导出到ascii时不会添加任何中断。

当我注意到在导出的文本中添加了换行符时,我开始摆弄org-ascii-text-width,我错误地认为这是由于对组织8.2.5的更新。

这是另一回事。我必须无意中设置fill-column或类似的东西。