我也觉得目前状态添加零宽空格可能是最好的解决方案,但是我害怕看不见的空格会弄坏格式,比如删除的时候没有正确全部删除,导致零宽空格出现在各种不应该放的地方。
虽然可以用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复制文本的时候貌似没有很好的方法去除这个零宽空格,不过无伤大雅了。