块编辑器
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) - 查询和展示块数据
:::