项目

tiptap 快捷键

引言

Tiptap 默认提供了一些合理的快捷键。根据你的应用场景,你可能想要自定义这些快捷键。让我们先看看默认的设置,然后教你如何更改它们!

默认快捷键

核心扩展大多有自己的快捷键注册。根据你使用的扩展集,下面列出的快捷键并非所有都适用于你的编辑器。

基本功能

命令 Windows/Linux macOS
复制 Ctrl + C Cmd + C
剪切 Ctrl + X Cmd + X
粘贴 Ctrl + V Cmd + V
不带格式粘贴 Ctrl + Shift + V Cmd + Shift + V
撤销 Ctrl + Z Cmd + Z
重做 Ctrl + Shift + Z Cmd + Shift + Z
插入换行 Shift + Enter
Ctrl + Enter
Shift + Enter
Cmd + Enter

文本格式化

命令 Windows/Linux macOS
加粗 Ctrl + B Cmd + B
斜体 Ctrl + I Cmd + I
下划线 Ctrl + U Cmd + U
删除线 Ctrl + Shift + S Cmd + Shift + S
高亮 Ctrl + Shift + H Cmd + Shift + H
代码 Ctrl + E Cmd + E

段落格式化

命令 Windows/Linux macOS
应用正常文本样式 Ctrl + Alt + 0 Cmd + Alt + 0
应用一级标题样式 Ctrl + Alt + 1 Cmd + Alt + 1
应用二级标题样式 Ctrl + Alt + 2 Cmd + Alt + 2
应用三级标题样式 Ctrl + Alt + 3 Cmd + Alt + 3
应用四级标题样式 Ctrl + Alt + 4 Cmd + Alt + 4
应用五级标题样式 Ctrl + Alt + 5 Cmd + Alt + 5
应用六级标题样式 Ctrl + Alt + 6 Cmd + Alt + 6
有序列表 Ctrl + Shift + 7 Cmd + Shift + 7
无序列表 Ctrl + Shift + 8 Cmd + Shift + 8
任务列表 Ctrl + Shift + 9 Cmd + Shift + 9
引用块 Ctrl + Shift + B Cmd + Shift + B
左对齐 Ctrl + Shift + L Cmd + Shift + L
居中对齐 Ctrl + Shift + E Cmd + Shift + E
右对齐 Ctrl + Shift + R Cmd + Shift + R
对齐全页 Ctrl + Shift + J Cmd + Shift + J
代码块 Ctrl + Alt + C Cmd + Alt + C
下标 Ctrl + , Cmd + ,
上标 Ctrl + . Cmd + .

文本选择

命令 Windows/Linux macOS
选择全部 Ctrl + A Cmd + A
向左扩展选择一个字符 Shift + Shift +
向右扩展选择一个字符 Shift + Shift +
向上扩展选择一行 Shift + Shift +
向下扩展选择一行 Shift + Shift +
选择到文档开头 Ctrl + Shift + Cmd + Shift +
选择到文档末尾 Ctrl + Shift + Cmd + Shift +

更改快捷键

快捷键可以是字符串,如 'Shift-Control-Enter'。键基于 event.key 字符串,通过 - 连接。有一个叫做 keycode.info 的小工具,可以实时查看 event.key

使用小写字母表示字母键(或大写字母表示同时按住 shift 键)。你可以将 Space 作为   的别名。

修饰符可以按任意顺序给出。ShiftAltControlCmd 会被识别。对于通过按住 shift 产生的字符,Shift 前缀默认存在,不需要显式添加。

在 Mac 上,你可以用 Mod 代替 Cmd ,其他平台则用 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(),
    // …
  ],
});

现在你可以根据自己的需求替换这些快捷键了。

在本文档中