以前通过修改变量 org-emphasis-regexp-components
的值可以实现不用空格分隔的粗体,斜体,下划线等等这些高亮,但是这招在最新版的 orgmode 中好像不好使了。大家是怎样处理这个问题的呢?
我用的 org 版本:Org mode version 9.2.4 (9.2.4-1-g0d7d12-elpaplus @ /home/james/.emacs.d/elpa/26.2/develop/org-plus-contrib-20190617/)
我用的 emacs 版本 26.2
org-emphasis-regexp-components
的值(这招以前是管用的):
(setq org-emphasis-regexp-components '("[:multibyte:] \t('\"{" "[:multibyte:]- \t.,:!?;'\")}\\[" " \t\r\n,\"'" "." 1))
1 个赞
hellooooo,论坛里那么多 org 用户,只有我有这个问题吗?
以前用我贴的regexp是不用加空格的,一直用的很爽的。不知道从哪个commit开始后不行了
是一回事。。。那层楼后半有例子,我直接贴过来吧
;; 让中文也可以不加空格就使用行内格式
(setcar (nthcdr 0 org-emphasis-regexp-components) " \t('\"{[:nonascii:]")
(setcar (nthcdr 1 org-emphasis-regexp-components) "- \t.,:!?;'\")}\\[[:nonascii:]")
(org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)
(org-element-update-syntax)
;; 规定上下标必须加 {},否则中文使用下划线时它会以为是两个连着的下标
(setq org-use-sub-superscripts "{}")
我一直用 emacs 自带的 org-mode,不知道最新版管不管用。
8 个赞
试一下用 emacs -q
启动,先启用 org-mode,再执行上面的配置。我也是 26.2,org-mode 版本 9.1.9,是可行的。
基于 @kinono 的答案,已经在最新的 org 以及 emacs 26.2 上测试可用
(setq org-emphasis-regexp-components '("-[:multibyte:][:space:]('\"{" "-[:multibyte:][:space:].,:!?;'\")}\\[" "[:space:]" "." 1))
(org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)
(org-element-update-syntax)
8 个赞
试用这个这个方案,确实可以实现不加空格加粗中文字体,不过如果一段中有多处高亮:=*明日*隔山岳,*世事*两茫茫=,那么「明日」「隔山岳,」「世事」三处都会高亮,一般来讲,「隔山岳,」不应该被高亮。
在不加空格的情况下可以实现只高亮两处么?