Org-mode 中文行内格式化的问题

果然是乌龙。我引入了 purcell 的 init-org.el,因为不常用,所以没印象: https://raw.githubusercontent.com/purcell/emacs.d/master/lisp/init-org.el

1 个赞

看了下,应该是把 org-hide-emphasis-markers 选项改成 t 就有这个效果。

对,原来都不知道这个功能,挺好用的。

有没有什么方法可以让光标在marker处的时候,把marker显示出来啊?

不知道有没有现成的,但是应该是可以做到的,类似于 prettify-symbols-modeprettify-symbols-unprettify-at-point 选项。

我也注意到 org-hide-emphasis-markers 这个变量了,终端下渲染效果不佳,很难注意到哪些地方用了这些符号,所以还是显示出来比较好。

如果能根据光标位置自动显示/隐藏就好了,可惜这个开关只在初始化的时候起作用(也许可以主动调用 org-do-emphasis-faces 起到动态控制的效果)。

另,这些符号配对之后,竟然不能用 evial-surrond 替换/删除 :sweat_smile:

2 个赞

不知道为什么,我的org-mode里面斜体的显示不正常,谁能给解答一下啊?这会跟我的系统有关吗?

刚刚试了,放在这个里面也是不行的。 目前唯一成功的就是放在defun dotspacemacs/user-init ()

在 pre-init-org 里面用 spacemacs|use-package-hook 挂到 post-init 里 不生效可能是因为 spacemacs 的 org layer 覆盖了你的设置,所以放在启动时最后加载的 user-config 里却会生效。 当然,放在 user-config 里也没多大问题,只是 layer 方便管理和分享而已。

我也是使用的spacemacs,把上面的配置放在自己layer/config.el里面是没有问题的。然后再是eval after load,没有出现问题。

还好导出html是正常的,只是在org里渲染不正常。

另外还有一个无法解决的问题:行内代码。 org-mode用 =代码= ~代码~ 来表示行内代码。但是代码经常有等号,即使用 ~代码~ 这种格式来表示,代码里有个单引号也会挂掉。

如果只是想用orgmode输出HTML作为博客,那我找到一种方案: 用HTML引用。 就是用@@HTML:开标签/闭标签@@ 来包裹标签。

另外有一个问题就是链接格式化的问题,为什么链接的格式化会往后延?如上图,只有第一个“豆瓣FM”是链接,结果链接的样式延生到后续的所有文本。我找了org-mode手册里的链接相关的资料,没有讲到这方面的问题。

因为 Org 没有考虑到中文的习惯,需要在 [[]]后面加个空格。

加空格我知道,我现在就是加空格。不过,有点丑。

好在导出html的时候,不会有这种“延伸”。

除此之外还有什么方法吗?

那就只能 hack on Org。不然就用 Markdown 之类的别的。 我记得 melpa 上面有个 org-chniese,集成了一些针对中文的 hack,里面就有解决导出 html 的问题。

可以问问 Org 方面,感觉可以当作一个 Bug(?),因为链接后面的文字,即便没用空格隔开也完全没有必要高亮。

[[link][description]]FOOBAR
                     ^^^^^^

org-submit-bug-report中

link 的问题要是能解决真是造福广大中文用户了,我都是自己 hack 解决的。

找到一个org-chinese-utils,在导出html的时候,会替换标记前后的空格。还不错!but,不会替换链接之后的空格。

关于 “Org 链接后面不加空格高亮有问题”,Org 的邮件列表上 Kaushal Modi 给出了一个 work-around

(setq org-highlight-links (delete 'plain org-highlight-links))

我试了下能解决问题,但是副作用是会把 plain link 的高亮取消掉。

/cc @et2010 @LdBeth

3 个赞