非常实用,赞啊!
我有个简单的建议,既然zero width space可以用来解决这个问题,为什么不简单的绑定一个输入zero width space的快捷键,然后写orgmode的时候,插入就行了?比如,插入~的时候,直接插入zero width space ~?
像上面那样想办法自动插入不是更省心么
(defun my/insert-zero-width-space ()
(interactive)
(insert-char ?\u200B)) ;; code for ZERO WIDTH SPACE
(global-set-key (kbd “C-x 8 s”) ‘my/insert-zero-width-space)
加空格也很难受。bibtex条目经常是 史永东2021中债估值识别了债券信用风险吗
这种,加了空格就出bug
我的思路是编辑 org 时,一换行就自动进行 search regexp 然后插入分隔符(中英用空格,中中用零宽空格),据此写了个小函数 ingtshan/separate-inline.el: Separating words automatically with given regexp
这个自动化,牛!
谢谢,经过一天的使用,发现依赖回车有时候也不方便,于是加入了新的触发行为,光标离开行的时候。
这么好用的包,咋不考虑进 melpa
这个看起来真好,请问是不是在evil下不能用?我在doom evil模式安装使用,有separate-inline-mode的情况下,不起作用。
我也是在 evil 下用的,没什么问题呢
怎么使得路径中有中文时不生效呢?
看到你提的 issues 了,谢谢
我之前 github 邮件通知没设置好,现在才看到,抱歉
不可以的,category 不能出现在 character alternative 里。因为在 []
中 \
被当作普通字符。
我也觉得目前状态添加零宽空格可能是最好的解决方案,但是我害怕看不见的空格会弄坏格式,比如删除的时候没有正确全部删除,导致零宽空格出现在各种不应该放的地方。
虽然可以用whitespace mode等方法让它显示出来,但是这样看起来排版跟手动加空格一样乱了。 并不能实现很好的显示效果,例如像emeditor上这样:
所以我写了一个函数来删除这些意外出现的不必要的零宽空格
(defun my/remove-zero-width-space ()
(interactive)
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(while (re-search-forward "[^=\\|*\\|+\\|~\\|/\\|_]\\(\u200b\\)[^=\\|*\\|+\\|~\\|/\\|_]" nil t)
(replace-match "" t t nil 1)
)
)
)
)
(add-hook 'before-save-hook 'my/remove-zero-width-space)
这种方法可能不是很完美,但是我用着很好。
现在有个问题在于从emacs复制文本的时候貌似没有很好的方法去除这个零宽空格,不过无伤大雅了。
这篇文章里提到了这个包 org-extra-emphasis,可以在导出时去除零宽空格. 同时 org-extra-emphasis-zws-display-char
也可以控制零宽空格在 org-mode buffer 里的显示样式.
此贴可以终结了!
如果是doom emacs可能需要修改evil-embrace:
(add-hook 'org-mode-hook 'embrace-org-mode-hook)
(add-hook! org-mode-hook
(dolist (item '((?\* . ("\x200B*" . "*\x200B"))
(?\+ . ("\x200B+" . "+\x200B"))
(?\/ . ("\x200B/" . "/\x200B"))
(?\~ . ("\x200B~" . "~\x200B"))
(?\= . ("\x200B=" . "=\x200B"))
(?\$ . ("\x200B$" . "$\x200B"))
(?\_ . ("\x200B_" . "_\x200B"))
(?\! . ("\x200B!!" . "!!\x200B"))
(?\@ . ("\x200B!@" . "!@\x200B"))))
(embrace-add-pair (car item) (cadr item) (cddr item))))```