【插件发布】Universal Cursor Hotkeys:实时预览表格光标增强,同时支持中文分词感知与 Vim 模式

大家好,我是 Universal Cursor Hotkeys 的作者。

Obsidian 的实时预览(Live Preview)模式下,Markdown 表格一直有两个老问题:

  • 谁都会遇到:Ctrl+←/→ 按词跳转时,中文会被当成一整段连续文字,一下子跳过一大片,而不是停在真正的词语边界
  • Vim 用户尤其痛苦j/k 在表格里经常跨不过行,w/b/e/gg/G/gj/gk 各种奇怪的落脚点,表格内的 Vim 模式基本形同虚设

分别解决这两个问题的插件,社区里已经有了,但同时解决、而且互不冲突地解决,目前只有这一个插件做到——两个单一功能插件如果都想接管 Vim 同一套按词移动逻辑,加载顺序不同就会互相覆盖,谁也用不明白。

For everyone(不用 Vim,也一样有效)

不装 Vim 模式、不用 Emacs 风格快捷键也没关系。方向键、Home/End、Page Up/Down、Ctrl+←/→ 这些你每天都在用的按键,装上插件后自动获得表格感知和中文分词能力。

而且不是"暗地里"接管按键——每一项都是 Obsidian 标准 Hotkeys 系统里真实可见的一条设置,随时能在 设置 → 快捷键 里看到、关闭或者改绑快捷键,跟其他任何 Obsidian 快捷键完全一样。

设置也很简单,一个按钮全部搞定:

表格感知的分词,是这个插件真正的差异化

现有的中文分词插件中,大多没有考虑表格场景。这个插件从一开始就是围绕"表格里也要分词正确"设计的——不追求分词精度堪比专业分词库,但保证在表格单元格内外都能正确识别中文词语边界。

底层原理也是这两个问题能同时解决、且不冲突的原因:要让 Vim 的按词移动识别中文词语边界,就必须接管 Vim 自己的移动逻辑;如果同时装了另一个专门修复表格的插件,两者很可能抢着接管同一段逻辑,谁的修改生效完全取决于加载顺序,实际上没法真正同时用上两边的效果。

Vim 模式:h/j/k/l/w/b/e/gg/G/gj/gk 全部修好了

表格内逐字计数错误、行跨不过去、落脚点莫名其妙,这些问题这次全部修复。w/b/e 本身就是按词移动,所以中文分词的效果在 Vim 模式下同样生效,跟上面 For everyone 的体验是一致的。

下面的动图后半段就是实际演示。

Emacs 风格快捷键

如果你用的是 macOS 风格的 Emacs 快捷键(Ctrl+P/N/B/F/A/E 等),Kill & Yank 之类的编辑命令也都支持,包括在表格内。

演示

演示:前半为普通按键,后半为 Vim 模式,两者都支持表格光标与中文分词

链接

详情见 GitHub 仓库

觉得有用的话,也欢迎去 GitHub 点个 :star: Star。