Commander 插件使用指南
Commander 是 Obsidian 中用于自定义命令入口的插件,可以将任意 Obsidian 命令、代码片段和脚本添加到 Ribbon 栏、侧边栏、右键菜单和文件标题栏。
插件特点
| 特性 | 说明 |
|---|---|
| 🎛️ 多位置绑定 | Ribbon、侧边栏、右键菜单、标题栏均可添加 |
| ⌨️ 快捷方式 | 为任意命令创建快捷键 |
| 📝 代码片段 | 运行自定义 JavaScript 代码 |
| 🔧 自定义命令 | 创建组合命令序列 |
| 🖼️ 图标系统 | 支持 Lucide 和自定义图标 |
安装插件
- 打开「设置」→「第三方插件」→ 关闭「安全模式」
- 点击「浏览」→ 搜索「Commander」→ 安装并启用
基础配置
打开配置面板
- 命令:
Commander: Open settings - 在「Settings」选项卡中管理所有命令
添加命令到 Ribbon 栏
Ribbon 栏是 Obsidian 左侧的图标区域:
- 在 Commander 设置中点击「Add」→ 选择「Ribbon」
- 选择要添加的命令
- 选择图标(如
📝、🔍、📅) - 设置提示文字
常用 Ribbon 命令:
| 命令 | 图标 | 说明 |
|---|---|---|
| 打开日记 | 📅 | 打开今日日记 |
| 搜索 | 🔍 | 全局搜索 |
| 新建笔记 | ✏️ | 创建新笔记 |
| 命令面板 | ⌨️ | 打开命令面板 |
添加命令到右键菜单
- 点击「Add」→ 选择「Context Menu」
- 选择命令
- 设置菜单位置(文件菜单 / 编辑菜单 / 文件夹菜单)
代码片段
Commander 支持运行自定义 JavaScript 代码片段。
创建代码片段
- 在设置中选择「Snippets」选项卡
- 点击「Add snippet」
- 编写 JavaScript 代码
常用片段
一键创建带日期的笔记
javascript
// 创建以当前日期命名的笔记
const today = new Date().toISOString().slice(0, 10);
const fileName = `Journal/Daily/${today}.md`;
const template = `---
date: ${today}
tags: [日记]
---
# ${today}
## 今日记录
`;
await app.vault.create(fileName, template);
new Notice(`已创建 ${today} 日记`);快速添加任务
javascript
// 在当前笔记末尾添加新任务
const file = app.workspace.getActiveFile();
if (file) {
const task = `\n- [ ] 新任务 📅 ${new Date().toISOString().slice(0, 10)}`;
await app.vault.append(file, task);
new Notice('已添加任务');
}切换主题
javascript
// 在亮色/暗色主题间切换
const theme = document.body.classList.contains('theme-dark')
? 'light' : 'dark';
app.changeTheme(theme);
new Notice(`已切换到${theme === 'dark' ? '暗色' : '亮色'}主题`);自定义命令序列
将多个命令组合成一个序列,一次执行。
创建命令序列
- 在设置中选择「Commands」选项卡
- 点击「Add command」
- 选择多个命令并设置执行顺序
示例:晨间工作流
序列:晨间规划
├─ 1. 打开今日日记
├─ 2. 打开本周周记
└─ 3. 聚焦日记编辑器示例:日终回顾
序列:日终回顾
├─ 1. 显示今日日记
├─ 2. 标记已完成任务
└─ 3. 创建明日待办图标系统
Commander 使用 Lucide 图标库。
选择图标
- 在添加命令时点击图标选择器
- 输入图标名称搜索(如
calendar、search) - 点击选择
常用图标对照
| 操作 | 图标名称 |
|---|---|
| 日历 | calendar |
| 搜索 | search |
| 新建 | plus |
| 标签 | tag |
| 文件夹 | folder |
| 链接 | link |
| 设置 | settings |
| 保存 | save |
高级配置
条件显示
设置命令在特定条件下才显示:
javascript
// 仅当笔记为日记时显示
module.exports = {
condition: (app) => {
const file = app.workspace.getActiveFile();
return file && file.path.includes('Journal/Daily');
}
};文件类型过滤
javascript
// 仅在 Markdown 文件中显示
module.exports = {
filter: (file) => file.extension === 'md'
};快捷键管理
在「Shortcuts」选项卡中管理所有命令的快捷键:
| 操作 | 说明 |
|---|---|
| 查看快捷键 | 列出所有已设置的快捷键 |
| 搜索 | 按命令名搜索快捷键 |
| 导出 | 导出快捷键配置 |
| 导入 | 导入快捷键配置 |
常用命令配置
Ribbon 栏配置
| 图标 | 命令 | 说明 |
|---|---|---|
| 📅 | Daily notes: Open today's daily note | 打开日记 |
| 📁 | New file | 新建笔记 |
| 🔍 | Search: Open search pane | 打开搜索 |
| 📋 | Commander: Open settings | 打开设置 |
| 🏷️ | Editor: Toggle tags view | 标签视图 |
右键菜单配置
| 菜单位置 | 命令 | 说明 |
|---|---|---|
| 文件菜单 | Daily notes: Open today's daily note | 用日记打开 |
| 编辑菜单 | Editor: Toggle strikethrough | 添加删除线 |
| 文件夹菜单 | New note here | 在此处新建 |
常见问题
Q: Ribbon 图标不显示?
- 确认插件已启用
- 检查图标名称是否正确
- 重启 Obsidian
Q: 代码片段运行报错?
检查 JavaScript 语法是否正确,Commander 的代码片段在 sandbox 环境中运行,部分 API 可能受限。
Q: 如何备份配置?
在 Commander 设置中有「Export」选项,可以导出所有命令和片段配置为 JSON 文件。
Q: 如何隐藏默认 Ribbon 图标?
在 Commander 设置中启用「Hide default ribbon icons」,然后选择性显示需要的图标。