我用 rime 输入法,可以在除了 emacs 之外的其它任意地方输入数学符号,比如 leq 会转换为 ≤,而唯独 emacs 中不行。输入希腊字母则可以,这是怎么回事?好诡异啊
大家的也是这样吗?
现在的问题变为:
怎样告诉 org 我要结束上标的输入,比如 a^{sup}
我输入完 sup 之后接着输入的字符仍然是上标,因为花括号被隐藏了,输入空格也没有用。
我用 rime 输入法,可以在除了 emacs 之外的其它任意地方输入数学符号,比如 leq 会转换为 ≤,而唯独 emacs 中不行。输入希腊字母则可以,这是怎么回事?好诡异啊
大家的也是这样吗?
现在的问题变为:
怎样告诉 org 我要结束上标的输入,比如 a^{sup}
我输入完 sup 之后接着输入的字符仍然是上标,因为花括号被隐藏了,输入空格也没有用。
算了,我改用 org pretty entities 了。现在的问题是,怎样告诉 org 我要结束上标的输入,比如 a^{sup}
我输入完 sup 之后接着输入的字符仍然是上标,因为花括号被隐藏了,输入空格也没有用。
我也想知道这个怎么实现,这个确实有点麻烦
其实这个功能实现起来很简单,但是找到一个合适的键位比较难。有什么比较容易按,但是又没有被 org 占用的键位呢?
给需要的同学吧:
(defun et/org-cycle (&optional arg)
(interactive "P")
(if (and org-pretty-entities
org-pretty-entities-include-sub-superscripts
(save-excursion
(goto-char (max (line-beginning-position)
(- (previous-property-change (point)) 3)))
(looking-at org-match-substring-regexp)))
(decompose-region (line-beginning-position) (line-end-position))
(goto-char (match-end 0))
(org-cycle arg)))
绑定到 org-mode-map 中的 tab 就行了,我已经尽量将影响降低到最低,只用了一个正则表达式(没有用 org-element,那个太重了),如果你觉得还是不满意的话,那就只能 hack org-cycle
这个函数了(org-cycle
的功能非常多,用 around advice 还不如直接覆盖)。
注意这个只针对上下标用{}
括起来,并且开启 pretty entities 的使用情形,其它情形完全没有必要 hack 。
个人认为绑定到tab
不大好吧,可以考虑使用C-f
来前进一个字母}
,这样更合理一点吧。
tab 不只可以前进一个字符,只要在上下标内,都可以立即跳出范围
刚刚又试了一下,发现原来的问题已经没有了,估计是刚更新了org的原因吧。
现在上下标的使用非常方便,你试试。
Org mode version 9.1 (9.1-20-ga4f139-elpaplus @ /.emacs.d/elpa/org-plus-contrib-20170911/)
我的是最新版,但是仍然有这个问题
你确定你开启了 pretty entities?
这个问题只有带花括号的上下标才有,不带花括号的不存在这个问题
带花括号的优势是上下标后面不必跟空格
有关的是这几个配置吧
(setq org-hide-emphasis-markers t
org-catch-invisible-edits 'smart
org-pretty-entities t
org-use-sub-superscripts '{} )
不,没有关系
那你说的这个是什么意思?
我的意思是除了这两个:
org-pretty-entities t
org-pretty-entities-include-sub-superscripts t
和其它的都没有关系
然后你只有使用 a^{abc}
这种形式的上下标才能体会出来
这个默认是开启的。
这个是强制使用大括号,很好用。
我现在输入a^{b}c,会显示:
输入a^{b} c(依次输入,中间有一个空格),会显示:
没错,但是如果你想修改上标,把光标移到上标内部,然后再想出来呢?或者你同时还想使用不带花括号的上下标呢?
其实没有必要改 org-use-sub-superscripts
的值也是同样的行为。你只是还没有遇到我说的这种情况。当然很细微不容易注意。但是我是强迫症没法忍啊。
我强制使用了大括号,为了方便一些化学式的书写。
中间有空格的上下标的书写,直接移动就可以了,只是前面^
部分不方便书写。
现在感觉已经方便不少了。
论坛里化学专业的人不少啊
其实我们之间还有一点使用上的差别,就是我在 org-mode 中开启了 smartparens,然后花括号都是成对输入的。这样说的话你应该能体会到我的痛苦了吧
pretty entities 怎么输入带花括号的上标?
C-c C-x \ 开启 pretty entities
依次按下:
a ^ { s u p
C-c C-x \ 关闭 pretty entities
得到:
a^{}sup
那你应该先写完再用evil-substitute啊