Joplin 使用 CJK 输入法时光标出现 L SEP 特殊符号的解决方法

1,206 字

久しぶり!

今天来分享一个在 Joplin 使用 CJK 输入法时输入光标位置会出现 L SEP 特殊字符的解决方法。

首先感谢《 How to use Joplin desktop app on FreeBSD 》这篇文章的作者,这位作者在撰写这篇文章的本意是介绍如何在 FreeBSD 中编译 Joplin 的桌面版客户端,但文中的中后部份也介绍了Workaround for LSEP showing up in CJK input methods 的教程说明。我这边基本上是翻译教程为中文并添加了一些自己在简体中文环境中的实验和理解。

简单剖析

Joplin 的 GitHub 项目中 Issue 也多次提及到了这个问题,如:

但从 Joplin 开发者的回复中可判断,由于Joplin 使用的编辑器组件是 Ace Editor,这个文本编辑器在 FreeBSD、Windows 等系统中均会出现无法正常渲染 CJK 字符的问题,这属于组件本身的 Bug,所以这个 CJK 历史问题短期内是不可能被修复的。下面两张图可以清楚演示具体的情况。

幸运的是,上面提及的文章的作者提供了解决方法:)

解决方法

直截了当式

下载安装 NoLSEP 这个特殊字体,这个字体的效果是可以让 L SEP 这个 U + 2028 行分隔符以单个零宽度的字符出现,从而使这个字符在视野中消失。

安装字体后,在 Joplin 菜单中依次点击操作:

英文界面请按照以下操作步骤: "Tools > Options > Appearance > Editor font family > NoLSEP > Apply > OK"

中文界面请按照以下步骤:「工具 > 选项 > 外观 > 编辑器字体 > 将编辑器字体修改为 NoLSEP > 应用 > 确定」

Note: 若未能生效,重启一次 Joplin 即可

强迫症式

由于把默认编辑器字体设置为 NoLSEP 后, Joplin 编辑器在处理 CJK 字符时,会默认 Fallback 到编辑器默认的 monospace 等宽字体中,导致字体不太好看。下面的方法就是比较好的实现自定义字体的同时不会出现 L SEP 的字符.

Note: 以下操作务必将 Joplin 升级到 v1.0.176 之后的版本

英文界面请按照以下操作步骤:"Tools > Options > Appearance > Custom stylesheet for Joplin-wide app styles > Edit"

中文界面请按照以下步骤:「工具 > 选项 > 外观 > Custom stylesheet for Joplin-wide app styles > Edit」

在编辑器中添加以下代码,添加后保存文本并重启 Joplin:

div.ace_editor * {
    font-family: NoLSEP, Noto Sans Mono CJK SC Regular, monospace !important;
}

简单说明,具体是把 NoLSEP 放在最前面用于处理 L SEP 的字符,而在处理简体中文时,因为 NoLSEP 不具备中文字体,因此会自动使用第二位的 Noto Sans Mono CJK SC Regular 这个字体,而 monospace 则是编辑器默认的等宽字体用于处理其他的字符。

具体代码可以按需修改,例如把中间的 Noto Sans Mono CJK SC Regular 修改为常见的微软雅黑等等。但值得注意,由于 Joplin 在 Windows 下的 CJK 渲染确实有问题,在我个人主观的测试后,我认为 Noto Sans Mono CJK SC Regular 的显示效果是最理想的,而 monospace 原则上也可以修改的,但务必要修改为其他等宽字体,否则会出现空格错位的情况。


最后的显示效果演示

Joplin 自称的定位是 Evernote 的本地免费代替品,提供了 Evernote 数据的导入的入口,但从我个人一个多星期的测试试验中,他的综合体验还是比不上底蕴深厚的 Evernote。不过 Joplin 与 Evernote 的自有云的同步不同, Joplin 胜在可以自定义同步云盘,借助 Dropbox、OneDrive 等 API 同步,且有 iOS 和 Android 的客户端,综合体验值得称道,再加上上面的自定义字体锦上添花:)

另外,除了 Joplin 官方的浏览器剪藏扩展外,我再推荐一款 Web Clippers,支持 Joplin、Notion、OneNote 等等的剪藏,相关截图:

后记:之前说过将会公布未发布的文章,很抱歉,我暂时仍未下定决心公布。

羞于承认自己是处男,这种性心态在男性群体中广泛存在。因此,我,作为一个处男,几乎意味着必须直面这样一个问题——我是否为自己是处男而感到羞耻? TL;DR,是的。 我有这样的思考并不是源于我在床上看过爱情动作片自慰后贤者模式下的突发奇想。最主要的原因是我最近回顾重温了一部经典电影《Good Will Hunting》,中文译名《心灵捕手》,在电影中有一段经典场景,这是心理学教授 Sean 所说的一段话。 “你只是个孩子,你根本不晓得你在说什么。所以问你艺术,你可能会提出艺术书籍中的粗浅论调,有关米开朗基罗,你知道很多,他的满腔政治热情,与教皇相交莫逆,耽于性爱,你对他很清楚吧?但你连西斯汀教堂的气味也不知道吧?你没试过站在那儿,昂首眺望天花板上的名画吧?肯定未见过吧?如果我问关于女人的事,你大可以向我如数家珍,你可能上过几次床,但你没法说出在女人身旁醒来时,那份内心真正的喜悦。你年轻彪悍,我如果......
May the Force be with you...