【插件发布】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。

:tada: 修复中文输入法候选词切换的 bug,顺便上线了完整的中文文档(0.11.2)

大家好,Universal Cursor Hotkeys(表格感知的光标移动、Vim mode 表格支持、Emacs 风格快捷键插件)更新了几个值得关注的内容:

:bug: 修复了一个使用中文输入法时会遇到的 bug: 之前,用 Ctrl + N/Ctrl + P 等快捷键切换输入法候选词时,切换几次之后输入法会突然不再响应,之后的按键会直接被插件当作光标移动命令执行,导致候选词选择失败、光标却在正文里乱跳。0.11.2 已修复:现在每个命令执行前都会先检查编辑器是否处于输入法合成状态,合成期间不会误触发。

:open_book: 中文文档已上线(此前只有 README,现在有完整的文档站,英文、中文、日文三语言版本):

文档包含三种模式(For everyone / Vim mode / macOS-Emacs 风格)的完整命令参考、与原生按键的具体行为差异,以及每个设置开关的说明。

0.11.1/0.11.2 还修复了几个表格相关的小问题,完整记录见更新日志。

文档中如果有翻译不通顺或者说明不清楚的地方,欢迎指出,我会尽快修正。