用 org 做笔记的时候,行内 haskell (或者 lean)代码的常会有 = 字符,这个时候怎么处理?

map (fun y => f (g y)) x 比如说这样的,中间的 = 会搞乱 markup,大家是怎么处理的?

试试行内代码呢?

src_haskell{map (fun y => f (g y)) x}

也会叠起来

src_haskell{map (fun y => f (g y)) x} =a= 
显示为 => 
src_haskell{map (fun y > f (g y)) x} a

文档中看到另一种方式,零宽字符,可以在代码中的=后加一个,就正常了,不过可能复制代码再去执行可能会出现错误?我也没有试过

我这边完全没问题啊, 看看版本号? 我这边 9.6.15

~ 包裹也行吧, 甚至更加合适. Org 里面 ~ 就是准确的内联代码的语义.

我也是9.6.15版本,可以复现这个问题。

如果你平时不会用到高亮的话可以从org-emphasis-alist里删掉=,不然就只能靠escape了。

我记得老版本好像没有这问题的。

其实全部换为 ~ 确实可以。只不过有一部分 org 文件是从网站上转换过来的,里面的代码都用的是 =

没啥问题啊

正常
src_haskell{map (fun y => f (g y)) x} =a
不正常
src_haskell{map (fun y => f (g y)) x} =a=

你的org-emphasis-regexp-components是否改过?

我看你这个似乎没有开org-hide-emphasis-markers,我刚才试了下,不开的话显示还是正常的,开了就不正常了。

雀食. 所见即所得对我来说还是太奢侈了, 吃不了这种细糠, 所以就关掉了

我看了下这里的blame,都是陈年代码,没人改过。

触发这个bug需要:

  • 左边的=的左边是空格,右边是任意非空格字符
  • 右边的=的左边是任意非空格字符
  • ~~内的那个的=会始终处于被隐藏的状态

除非match的处理顺序被破坏,按理说不会发生这种问题。

难不成最近emacs的regex实现有发生什么改动?

或者,我记错了,一直有这问题,但是一直没人修?