这个帖子专门收集大家碰到的 orgmode 的 bug,可以在帖子下面留言,我会整理后放在置顶贴;或者也可以直接提交到 emacs-china 维护的 orgmode mirror 的 issue 列表。
Bug 1 (已修复)
把光标放在 src block 的 begin line 上,M-x org-backward-paragraph 无法移动光标,报错:
Debugger entered--Lisp error: (error "Invalid search bound (wrong side of point)")
re-search-backward("^[ ]*$" 23945 move)
orgmode 是最新版:
Org mode version 9.1 (9.1-20-ga4f139-elpaplus @ /home/neoarch/.emacs.d/elpa/org-plus-contrib-20170911/)
麻烦论坛里经常上 org mail list 的大神给反映一下。
这个是 bug 确认无疑,不会再闹乌龙了。
Edit: 最新的 org-mode 中已修复
Bug 2
example block 内 org-fill-paragraph
无效
比如:
#+begin_example
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
#+end_example
期待行为:
在 example block 内使用 org-fill-paragraph
应该可以将上面的 block 中的内容 fill:
#+begin_example
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah
#+end_example
实际行为:
什么都没有发生
测试平台:
vanilla emacs 25.3.1 with latest org-plus-contrib
Bug 3
发现一处文档错误:
http://orgmode.org/manual/var.html
中有这样的内容:
#+NAME: double
#+BEGIN_SRC emacs-lisp :var input=8
(* 2 input)
#+END_SRC
#+RESULTS: double
: 16
#+NAME: squared
#+BEGIN_SRC emacs-lisp :var input=double(input=2)
(* input input)
#+END_SRC
#+RESULTS: squared
: 4
但是实际上第二个代码块运行的结果应该是 16。
也许不是 bug 。
org-backward-paragraph
这么改不保证能用。
- (if (= (point) contents-begin) (goto-char post-affiliated)
+ (if (or (= (point) contents-begin) (= (point-at-bol) begin))
+ (goto-char post-affiliated)
Why? 表示不能理解。
之所以说这个是 bug,是因为这个其实很影响使用,因为有其它函数依赖这个函数,比如 org-inside-LaTeX-fragment-p
进而导致我开启 org-cdlatex-mode 时无法在代码块开始行输入 _
可以试着提交给 org 看看
这个 bug 已经在最新的 org-plus-contrib 中修复了:
et2010
5
这个帖子就用来收集大家所遇到的 org-mode 的 bug,参见置顶
LdBeth
6
我个人认为直接改动 mirror repo 不方便同步。提交给 Org 以后,你可以自建一个 Fork 来维护 patch,然后提 issue 过来,等 bug 修复以后 close 对应 issue。
以后在 mirror repo 提的 issue 我们也可以考虑统一提交给 Org 邮件列表。
1 个赞
et2010
7
确实,我没打算提 PR 到 mirror,只是觉得那里提 issue 挺方便的,我一直不适应 mailing list。
谢谢
fontux
8
试试在 org.el 中的 org-fill-element
函数中添加
;; Use major mode filling function is src blocks.
(src-block (org-babel-do-key-sequence-in-edit-buffer (kbd "M-q")))
+ (example-block
+ (let ((org-src-window-setup 'switch-invisibly))
+ (when (org-edit-src-code)
+ (unwind-protect (fill-paragraph)
+ (org-edit-src-exit)))
+ t))
;; Align Org tables, leave table.el tables as-is.
(table-row (org-table-align) t)
这个确定是bug吗? 一般 example 里面的内容是不能随便fill的吧?
如果确定有BUG, 给 orgmode-devel 发送邮件,提交问题,才是王道,其他途径我个人都不推荐…
1 个赞
et2010
11
应该是 bug,你看一下 org-fill-paragraph
函数的文档,里面明确提到针对 example block 来的,禁用 fill 这种事应该交由用户来决定吧,因为它本身也不是自动 fill 的。
这个也有可能是文档的bug,我感觉对于 example block, 自动fill应该慎重, 用户一不小心 fill 了代码等手工排版的东西,那不是很无语了, example完全可以 C-‘ 之后再 fill,这个就万无一失了。
Zn931
14
org下表格中有中英混杂的情况下,如果加参数 <数字> 表格无法对齐。
et2010
16
这个不能算是 bug,只能说 orgmode 本身没有太照顾中文用户。我记得可以通过修改数值的大小来让表格对齐。
Zn931
17
确实可能通过修改数值来对齐,但是如果需要让表格内容隐藏就没法解决了。-----什么时候让老外来迁就我们就好了。