跳到主要内容

macOS (Emacs) style — 限制事项

范围选择相关​

  • (macOS)Shift + control + P/N/B/F/A/E 会在单元格边界处停止
    • 在纯文本内或单元格内部按住 Shift 按下这些快捷键会扩展选择范围,但这并不是本插件的 UP/DOWN/LEFT/RIGHT/HOME/END 命令应用了范围选择,而是 Obsidian 自身的快捷键的光标移动/范围选择。
    • 因此不存在插件特有的功能(从单元格边界移动到相邻单元格)。
    • 跨单元格的选择(多单元格选择)请使用 Shift + 物理方向键。
  • (macOS)Shift + option + ←/→ 不支持中文分词
    • 和上面一样,按住 Shift 按下这些快捷键会扩展选择范围,但这是 Obsidian 自身的快捷键的行为。
    • 因此不支持中文分词(选择范围会以标点符号为界,整体作为一块被选中。对于英文文本,则会按照标准行为逐词选中)。
  • (Windows)Shift + Ctrl + P/N/B/F/A/E 不会移动光标
    • 除非手动分配,否则 Windows 下这些快捷键并未分配任何命令,因此不会生效。(点击 Apply recommended 分配的是 Ctrl + P/N/B/F/A/E,Shift + Ctrl + P/N/B/F/A/E 是另一个独立的快捷键)
    • 请改用 Shift + ↑/↓/←/→ 进行范围选择。即使已通过按键升级将物理方向键本身分配给 UP/DOWN,只要同时按住 Shift,就会被视为另一个独立的按键,不受该分配的影响。
  • (Windows)Shift + Ctrl + ←/→ 不支持中文分词选择
    • 这是 Obsidian 自身的快捷键的按词范围选择,不会应用本插件的中文分词。选择范围会以标点符号为界,整体作为一块被选中。对于英文文本,则会按照标准行为逐词选中。
  • 不支持跨多个单元格的剪切、复制、粘贴(Kill line / Kill region / Copy region / Yank)
    • 本插件提供的命令是文本层级的操作命令,在表格中只会作用于单个单元格内的文本。
    • 不支持通过多单元格选择对表格结构进行剪切、复制、粘贴。
    • 如需对表格结构进行剪切、复制、粘贴,请使用系统标准的剪切、复制、粘贴功能快捷键(Windows 下为 Ctrl + X/C/V,macOS 下为 command + X/C/V),或通过鼠标右键打开的上下文菜单。
  • (多光标)在用 Set-mark 开始的范围选择中,TOP/BOTTOM、Page up/Page down 只会扩展主光标自己的选择范围
    • UP/DOWN、LEFT/RIGHT、HOME/END、Word left/right 会分别扩展每个光标各自的选择范围,但 TOP/BOTTOM、Page up/Page down 只会扩展主光标自己的选择范围。

表格相关​

  • 在实时预览中用 UP 进入有换行的高单元格时会出现一瞬间的滚动: 当用 UP 进入换行内容超出屏幕高度的单元格时,画面会先瞬间滚动到单元格开头,然后再跳转到本应落点的最底部显示行。这是本插件在单元格微件内为确定最底部显示行所使用的两阶段光标定位方式所固有的副作用。
  • 从普通文本进入表格时,总是会进入最左侧的单元格: 使用 UP/DOWN 从表格正上方(或正下方)的普通文本行进入表格时,总是会进入该行最左侧的单元格。因为光标落点之前的实时预览表格无法返回逐字符的位置信息,所以没有依据判断应该进入第几个单元格。插件会尽量在最左侧单元格的范围内保持光标的横向位置,但不会进入第二个及以后的单元格(即使尽可能靠右,也只会到达最左侧单元格的末尾)。进入表格前的光标横向位置会被记住,之后上下移动时也会保持这个横向位置。
  • 在实时预览中,即使表格省略了两端的 |,光标移动、单词移动、大小写转换、Transpose chars、Kill line、Kill region、Yank 也都能正常工作,但存在以下已知限制:
    • 清空第一个单元格会导致该行不再被识别为 Markdown 表格。由于没有前导的 |,只包含空白字符的单元格会使 Obsidian 无法将该行与非表格文本区分开来——这是该格式本身固有的限制。
    • 用鼠标点击单元格开始编辑时,Obsidian 会自动在两端补全 |。(这是 Obsidian 自身的行为。)
  • 源代码模式下的表格检测是简易判断: 在源代码模式下,判断光标是否处于表格内,只通过单行的简单字符串检查(该行是否以 | 开头并以 | 结尾)。
    • 不会进行跨越多行的判断,例如是否存在表头行、表格前是否有空行等,只依据这一行文本本身判断。
    • 因此,当文本恰好匹配这个模式时,可能会出现预期之外的行为。
    • 表格两端的 | 不能省略: Obsidian 的高级格式语法 中可以省略表格左右两端的 |,但本插件在源代码模式下不会将这种省略写法识别为表格。省略了两端 | 的行不符合上述字符串检查条件,因此会被当作普通文本处理。
    • 相比之下,使用 Markdown 语法树的实时预览模式能够准确判断。
  • (多光标)屏幕内存在表格或标注时执行 Page up/Page down 会丢失副光标
    • 在多光标状态下,屏幕内存在表格或标注时执行 Page up/Page down,会清除除主光标外的所有光标。
    • 屏幕内不存在表格或标注时,则不会发生此问题。

快捷键冲突​

  • (Windows)Obsidian 自身的快捷键不会被检测到冲突、也无法避让: 分配推荐快捷键(点击 Apply recommended 按钮或 Set 按钮)会覆盖 Obsidian 自身的快捷键 Ctrl + A(全选)和 Ctrl + Y(重做)。
    • 如果是 Obsidian 的热键(Hotkey),可以检测到重复,但这些是 Obsidian 自身的快捷键,并非(作为热键的)分配,因此无法被列入 Displaced commands,也无法通过 Restore 按钮恢复。
    • 请将内置的 Select all 命令和 Redo 命令分配到其他按键使用,或者如果使用频率较低,也可以从命令面板中执行。
  • 快捷键在笔记正文编辑器以外不起作用: 下面列举几个示例,但并不仅限于此。
    • 在笔记标题中,Ctrl + B/F/A/E 不起作用。
    • 在属性的文本输入框中,Ctrl + B/F/A/E、Ctrl + D、Ctrl + K 不起作用。
    • 在 Excalidraw 中,输入文本对象内容时,Ctrl + P/N/B/F/A/E 不起作用。
  • Page down / Page up 与粘贴的冲突: 如果将 Emacs 风格的快捷键 Ctrl + V(Windows)或 command + V(macOS)分配给 Page down 或 Page up,会导致在笔记正文编辑器以外的地方(例如 Excalidraw)无法使用 Ctrl + V / command + V 进行粘贴。
    • 在笔记正文编辑器中,很多情况下可以用 Yank 命令替代粘贴,但在那些视图中无法使用 Yank 命令,请改用鼠标"右键 → 粘贴"操作代替。
    • 同样,多单元格的剪切、复制、粘贴功能也无法被替代,因此建议让系统标准的剪切、复制、粘贴快捷键保持空闲,不要分配给其他功能。