Skip to content

块编辑器

Obsidian 1.5+ 引入了强大的块编辑器功能,允许用户直接编辑单个内容块,而无需打开整个笔记。这大大提升了编辑效率和灵活性。

什么是块

在 Obsidian 中,笔记由多个「块」组成。每个块可以是:

  • 段落文本
  • 标题(1-6级)
  • 列表项(无序、有序、任务)
  • 引用块
  • 代码块
  • 嵌入内容
  • 表格
  • Callout 块
  • 分割线

块的识别

Obsidian 会自动识别块的边界:

text
这是一个独立的块(段落)

## 这是标题块

- 这是列表项块
  - 嵌套列表也是独立块
    - 支持多层嵌套

> 这是引用块

`代码块`
```text

## 块编辑器基础

### 打开块编辑模式

有三种方式进入块编辑模式:

1. **鼠标操作**:将鼠标悬停在块的左侧,会出现 `⋮⋮` 符号,点击即可进入块编辑模式

2. **快捷键**:选中块内容后,按 `Ctrl+/`(Mac: `Cmd+/`)进入编辑

3. **命令面板**:`Ctrl+P` → 输入「块编辑」

### 块编辑界面

进入块编辑模式后:

- 只会高亮当前块的内容
- 块周围显示蓝色边框
- 块左侧显示拖拽手柄
- 按 `Esc` 退出块编辑模式
- 再次按 `Ctrl+/` 可退出

### 块选择状态

| 状态 | 显示效果 |
|------|----------|
| 未选中 | 正常显示 |
| 悬停 | 左侧显示 `⋮⋮` 手柄 |
| 选中 | 蓝色边框包围 |
| 编辑中 | 光标在块内闪烁 |

## 块操作技巧

### 快速选择块

**快捷键选择:**

| 快捷键 | 功能 |
|--------|------|
| `Ctrl+Shift+[` | 向上选择当前块 |
| `Ctrl+Shift+]` | 向下选择当前块 |
| `Ctrl+A`(在块内) | 选择整个块 |
| 连续使用 | 一次选择多个连续块 |

**鼠标选择:**

- 点击块左侧手柄:选择整个块
- Shift+点击:选择范围块
- Ctrl+点击:多选块

### 块级别操作

| 操作 | 方法 |
|------|------|
| 移动块 | 拖拽块左侧的 `⋮⋮` 图标 |
| 删除块 | 选中块后按 `Backspace` 或 `Delete` |
| 复制块 | `Ctrl+C` 复制块内容 |
| 剪切块 | `Ctrl+X` 剪切块 |
| 粘贴块 | `Ctrl+V` 粘贴到光标位置 |
| 复制块链接 | `Ctrl+L` |

### 块缩进与层级

**快捷键操作:**

- `Tab`:增加缩进(降级到子块)
- `Shift+Tab`:减少缩进(升级到父块)
- `Ctrl+[`:减少缩进
- `Ctrl+]`:增加缩进

**层级关系:**

```markdown
- 一级列表
  - 二级列表(Tab 缩进)
    - 三级列表(再次 Tab)
  - 回到二级
- 回到一级
```text

### 块转换

在不同块类型之间转换:

| 操作 | 方法 |
|------|------|
| 段落 → 标题 | 输入 `# ` + 空格 |
| 段落 → 列表 | 输入 `- ` 或 `1. ` |
| 段落 → 引用 | 输入 `> ` |
| 段落 → 代码 | 输入 ```` ``` ```` |
| 标题 → 段落 | 删除 `#` 符号 |

## 块引用与嵌入

### 创建块引用

块引用允许你引用笔记中的特定块:

1. 选中目标块
2. 按 `Ctrl+L` 复制块链接
3. 在任意位置粘贴

**引用格式:**

```markdown
![[笔记名称#^块ID]]
```text

### 块 ID

每个块都有一个唯一的标识符(块 ID):

- 格式:`^xxxxxx`(6位字母数字)
- 创建引用时自动生成
- 存储在笔记末尾的隐藏区域

**手动创建块 ID:**

```markdown
这是一个带有 ID 的块 ^myblockid
```text

### 块嵌入

嵌入显示另一个块的内容:

```markdown
![[笔记名称#^块ID]]
```text

**嵌入与引用的区别:**

| 类型 | 语法 | 效果 |
|------|------|------|
| 引用 | `[[笔记#^块ID]]` | 显示链接,点击跳转 |
| 嵌入 | `![[笔记#^块ID]]` | 直接显示内容 |

### 嵌入块编辑

嵌入的块支持实时编辑:

1. 点击嵌入块进入编辑模式
2. 修改内容会同步到原始笔记
3. 支持格式保持

## 高级块操作

### 块拖拽排序

**拖拽操作:**

1. 将鼠标移到块左侧的手柄上
2. 按住鼠标左键
3. 拖动到目标位置
4. 松开鼠标

**跨笔记拖拽:**

1. 打开两个笔记的分屏
2. 从一个笔记拖拽块到另一个
3. 自动复制或移动块

### 块折叠

**折叠功能:**

- 标题下的内容可以折叠
- 列表可以折叠子项
- 点击标题/列表前的箭头折叠

**快捷键:**

- `Ctrl+↑`:折叠当前块
- `Ctrl+↓`:展开当前块

### 块样式自定义

使用 CSS 为块添加自定义样式:

```css
/* 为特定块添加样式 */
[data-block-id^="important"] {
  border-left: 3px solid red;
  padding-left: 10px;
}

/* 高亮当前块 */
.is-selected {
  background-color: rgba(66, 133, 244, 0.1);
}
```text

### 块信息查看

查看块的详细信息:

1. 右键点击块
2. 选择「块信息」
3. 显示:块 ID、字数、创建时间等

## 嵌套块技巧

### 多层嵌套

创建复杂的内容结构:

```markdown
## 项目规划

### 第一阶段
- 任务1
  - 子任务1.1
    - 细节1.1.1
    - 细节1.1.2
  - 子任务1.2
- 任务2

### 第二阶段
- 任务3
- 任务4
```text

### 嵌套 Callout

Callout 块可以嵌套使用:

```markdown
::: info 主笔记
这是主笔记内容

> [!tip] 提示
> 这是嵌套的提示内容

继续主笔记内容
:::
```text

### 嵌套代码块

使用缩进创建嵌套结构:

````markdown
- 前端开发
  ```javascript
  console.log('Hello');
  • 后端开发
    python
    print('World')

## 实用工作流

### 知识整理

使用块编辑器快速重组笔记内容:

1. 打开多个笔记的分屏视图
2. 使用块模式选择相关块
3. 拖拽到新位置重新组织
4. 快速构建新的知识结构

### 内容重用

创建可复用的内容块:

1. **维护块库笔记**

```markdown
# 常用块库

## 签名块
^signature

## 引用模板
^quote-template

## 任务模板
^task-template
```text

2. **嵌入复用**

```markdown
本文档由 ![[块库#^signature]] 编写
```text

### 会议记录

高效记录会议要点:

```markdown
## 会议记录 - 2024-01-15

### 议程
- 议题1 ^topic1
- 议题2 ^topic2

### 决议
- 决议1 ^decision1

### 待办
- [ ] 任务1 ^task1
- [ ] 任务2 ^task2
```text

### 每日笔记整合

将日记中的重要块链接到主题笔记:

```markdown
# 项目进度

## 2024-01-15 进展
![[2024-01-15#^project-update]]

## 2024-01-16 进展  
![[2024-01-16#^project-update]]
```text

## 块与插件联动

### Dataview 查询块

使用 Dataview 查询特定块:

```dataview
TABLE without id
  file.link as "笔记",
  text as "内容"
FROM "项目"
WHERE contains(text, "重要")
```text

### Templater 块操作

使用 Templater 自动操作块:

```javascript
<%*
// 获取当前块
const block = app.workspace.activeLeaf.view.editor.getCursor();

// 插入模板
tR += "自动生成的内容";
%>
```text

### QuickAdd 快速块

创建快速添加块的命令:

1. 配置 QuickAdd 宏
2. 设置块模板
3. 一键插入常用块

## 快捷键汇总

### 基本操作

| 快捷键 | 功能 |
|--------|------|
| `Ctrl+/` | 进入/退出块编辑模式 |
| `Ctrl+Shift+[` | 向上选择块 |
| `Ctrl+Shift+]` | 向下选择块 |
| `Ctrl+L` | 复制块链接 |
| `Tab` | 增加缩进 |
| `Shift+Tab` | 减少缩进 |
| `Ctrl+A`(块内) | 选择整个块 |

### 高级操作

| 快捷键 | 功能 |
|--------|------|
| `Alt+↑` | 上移当前行/块 |
| `Alt+↓` | 下移当前行/块 |
| `Ctrl+Shift+K` | 删除当前行/块 |
| `Ctrl+Enter` | 新建块(列表模式) |

### 导航操作

| 快捷键 | 功能 |
|--------|------|
| `↑` | 移动到上一块 |
| `↓` | 移动到下一块 |
| `Home` | 移动到块首 |
| `End` | 移动到块尾 |

## 常见问题

### 块 ID 不显示

**解决方案:**

1. 确保使用引用语法 `[[笔记#^]]`
2. 手动添加块 ID
3. 检查 Obsidian 版本

### 块拖拽失败

**可能原因:**

- 目标位置格式不兼容
- 跨文件夹权限问题
- 插件冲突

### 嵌入块不更新

**解决方法:**

1. 刷新笔记视图
2. 检查原始块是否被删除
3. 验证块 ID 是否正确

## 注意事项

- 块编辑功能需要 Obsidian 1.5.0 及以上版本
- 块 ID 在创建时自动生成,复制时会包含在引用中
- 复杂笔记中使用块编辑可以显著提升效率
- 块引用和嵌入可以帮助建立更紧密的知识网络
- 大量块引用可能影响性能,适度使用

---

::: tip 提示
结合反向链接功能使用时,块编辑器能让知识管理更加高效。尝试为相关块建立双向连接!
:::

::: info 进阶阅读
- [反向链接](/advanced/backlinks) - 深入了解链接系统
- [模板系统](/basics/templates) - 使用模板快速创建块
- [Dataview 实战](/advanced/dataview-guide) - 查询和展示块数据
:::