Vim mode — 限制事项
表格相关
w/b/e的计数在跨越单元格或行边界时会停止:即使加上像5w这样的计数,一旦跨越单元格或行的边界,剩余的计数就会失效。gj/gk的计数在跨越行边界时会在途中停止:同样,像5gj这样的计数在同一个单元格内跨越多个显示行时可以正常工作,但一旦跨越行边界或进出表格,剩余的计数就会失效。- 带计数的
$不会跨越表格的行:3$不会像在表格外一样移动到下方第几行的行尾,而是停留在当前单元格内。 - 从普通文本进入表格时,通常会进入最左侧的单元格:使用
j/k/gj/gk从表格正上方(或正下方)的普通文本行进入表格时,通常会进入该行最左侧的单元格。- 因为光标落点之前的实时预览表格无法返回逐字符的位置信息,所以没有依据判断应该进入第几个单元格。插件会尽量在最左侧单元格的范围内保持光标的横向位置,但不会进入第二个及以后的单元格(即使尽可能靠右,也只会到达最左侧单元格的末尾)。进入表格前的光标横向位置会被记住,之后上下移动时也会保持这个横向位置。
- 但有一个例外:如果在用
$移动到行末(吸附状态)之后立即进入表格,则会进入最右侧的单元格。(详情请参阅命令参考中的$条目。)
- 用
gj/gk脱出表格落在检查框行(- [ ] ...)上时,可能会导致接下来的gj/gk横向位置向左偏移:检查框行在实时预览中会被渲染为比实际字符数更窄的控件,但记忆、还原横向位置的机制没有考虑到这种显示上的缩短,因此产生了偏移。除检查框以外,包含同样会被渲染得更窄的控件的其他行也可能出现同样的情况。
设置与其他插件的关系
- 开启设置开关后,会覆盖你为相同按键自行设置的内容:如果你已经自定义过这些按键,那么在该开关开启期间,你的自定义设置会被覆盖。
- 在 Leader 键为
Space期间,无法使用Space单独按下时原本的动作:只要开启过一次 Table structure 或 Table navigation,Space单独按下时原本的动作(向右移动)就会失效,直到重启 Obsidian 为止。即使关闭开关,原本的动作也不会恢复,这期间单独按下Space和开启时一样不会发生任何操作(不会输入空格)。如果将 Leader 键设为\,则不受影响。详情请参阅 设置。 - 未考虑与自行替换 Vim 表格单元格内行为的插件一起使用:本插件面向的是 Obsidian 标准的 Vim mode。
非本插件导致的问题
- 开启 IME(中文输入法)时,Vim 的按键输入可能会被误识别:在中文输入法启用的状态下,仅按一次 Vim 的移动键(主要是
g、j、k),也可能被误判为连续输入两次。例如,仅按一次g却被当作gg处理,j/k会移动 2 行而不是 1 行。这是 Obsidian 内部使用的 Vim 引擎(codemirror-vim)的已知问题(issue #178),即使完全禁用本插件,在 Obsidian 标准的 Vim mode 下也会同样复现。解决方法: 在使用 Vim 的移动操作之前,先切换到英文输入模式。