探索 Tiptap V3 的最新功能

Tiptap 中的键盘快捷键

Tiptap 提供了合理的默认键盘快捷键。根据您的使用需求,您可能希望将这些快捷键更改为自己喜欢的方式。让我们来看看我们为您定义的快捷键,并展示如何更改它们!

预定义的键盘快捷键

大多数核心扩展都会注册自己的键盘快捷键。根据您使用的扩展组件集,下面列出的快捷键可能并非全部适用于您的编辑器。

基础操作

命令Windows/LinuxmacOS
复制Control + CCmd + C
剪切Control + XCmd + X
粘贴Control + VCmd + V
纯文本粘贴Control + Shift + VCmd + Shift + V
撤销Control + ZCmd + Z
重做Control + Shift + ZCmd + Shift + Z
插入换行Shift + Enter
Control + Enter
Shift + Enter
Cmd + Enter

文字格式

命令Windows/LinuxmacOS
加粗Control + BCmd + B
斜体Control + ICmd + I
下划线Control + UCmd + U
删除线Control + Shift + SCmd + Shift + S
高亮Control + Shift + HCmd + Shift + H
代码Control + ECmd + E

段落格式

命令Windows/LinuxmacOS
应用正文样式Control + Alt + 0Cmd + Alt + 0
应用标题样式 1Control + Alt + 1Cmd + Alt + 1
应用标题样式 2Control + Alt + 2Cmd + Alt + 2
应用标题样式 3Control + Alt + 3Cmd + Alt + 3
应用标题样式 4Control + Alt + 4Cmd + Alt + 4
应用标题样式 5Control + Alt + 5Cmd + Alt + 5
应用标题样式 6Control + Alt + 6Cmd + Alt + 6
有序列表Control + Shift + 7Cmd + Shift + 7
无序列表Control + Shift + 8Cmd + Shift + 8
任务列表Control + Shift + 9Cmd + Shift + 9
引用Control + Shift + BCmd + Shift + B
左对齐Control + Shift + LCmd + Shift + L
居中对齐Control + Shift + ECmd + Shift + E
右对齐Control + Shift + RCmd + Shift + R
两端对齐Control + Shift + JCmd + Shift + J
代码块Control + Alt + CCmd + Alt + C
下标Control + ,Cmd + ,
上标Control + .Cmd + .

文本选择

命令Windows/LinuxmacOS
全选Control + ACmd + A
向左扩展选区一个字符Shift + Shift +
向右扩展选区一个字符Shift + Shift +
向上扩展选区一行Shift + Shift +
向下扩展选区一行Shift + Shift +

覆盖键盘快捷键

键盘快捷键可能是诸如 'Shift-Control-Enter' 之类的字符串。按键基于 event.key 中可能出现的字符串,并用 - 连接。这里有一个小工具 keycode.info,它能交互式展示 event.key

字母键请使用小写字母表示(如果希望包含 Shift 键,则使用大写字母)。可以使用 Space 作为空格 的别名。

修饰键可以以任意顺序给出。ShiftAltControlCmd 都能被识别。对于按住 Shift 键生成的字符,Shift 前缀是隐含的,不应显式添加。

您可以使用 Mod 作为 Cmd(在 macOS 上)和 Control(其它平台上)的简写。

下面是如何覆盖现有扩展键盘快捷键的示例:

// 1. 导入该扩展
import BulletList from '@tiptap/extension-bullet-list'

// 2. 覆盖键盘快捷键
const CustomBulletList = BulletList.extend({
  addKeyboardShortcuts() {
    return {
      // ↓ 您的新快捷键
      'Mod-l': () => this.editor.commands.toggleBulletList(),
    }
  },
})

// 3. 将自定义扩展添加到您的编辑器中
new Editor({
  extensions: [
    CustomBulletList(),
    // …
  ],
})