对标社区基准(kepano/obsidian-skills 31.8k★、AgriciDaniel/claude-obsidian
15 技能完整体系)后的 P1-P6 优化合集:
- P1: 8 个子技能 description 末尾去"伴随激活"冗余句(路由不识别该声明)
- P5: obsidian-plugins 描述聚焦环境层(插件/主题/CSS/Templates/快捷键/命令)
- P6: obsidian-workflow-pkm 描述加"多步骤复合需求优先匹配"前置引导
- P3: 核心 obsidian skill 增补 OFM 语法速查章节
(wikilinks/embeds/callouts/block refs/highlight/math 全表)
- P4: workflow-pkm 新增 Workflow 8 Web Clip → Permanent
(引用 defuddle 社区标准,WebFetch 兜底)
285 lines
9.6 KiB
Markdown
285 lines
9.6 KiB
Markdown
---
|
||
name: obsidian-plugins
|
||
description: 管理 Obsidian 环境层配置——插件(核心/社区,启用/禁用/安装/卸载)、主题切换、CSS snippets、Templates 模板、内置命令(command id)、快捷键 hotkeys。高频场景:首次配置 vault 时批量装常用插件、按团队规范统一主题/CSS。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、内置命令、首次配置 vault、安装插件。不用于笔记内容 CRUD(obsidian 核心技能),不用于 frontmatter 属性(obsidian-meta)。
|
||
---
|
||
|
||
# Obsidian Plugins · 环境配置管理
|
||
|
||
> Obsidian 的"控制面板":插件、主题、CSS、模板、命令、快捷键。一份技能管完所有环境配置。
|
||
|
||
---
|
||
|
||
## 何时使用
|
||
|
||
- **启用/禁用/安装/卸载**核心或社区插件
|
||
- 切换 / 安装 / 卸载**主题**
|
||
- 管理 **CSS snippets**(自定义样式片段)
|
||
- 管理 **Templates**(Obsidian Templates 核心插件的模板文件)
|
||
- 查看 / 执行 Obsidian 内置**命令**(`obsidian command id=...`)
|
||
- 查询 / 管理**快捷键**(hotkeys)
|
||
- 切换 **Restricted Mode**(安全模式,禁用社区插件)
|
||
|
||
## 不用于
|
||
|
||
- 笔记内容 CRUD → **obsidian** 核心技能
|
||
- Frontmatter 管理 → **obsidian-meta**
|
||
- Vault 层面同步设置 → **obsidian-history**
|
||
|
||
---
|
||
|
||
## 命令速查
|
||
|
||
### 插件(Plugins)
|
||
|
||
```bash
|
||
# 列出
|
||
obsidian plugins # 列出所有已安装插件(tsv 默认)
|
||
obsidian plugins filter=core # 只看核心插件
|
||
obsidian plugins filter=community # 只看社区插件
|
||
obsidian plugins versions # 含版本号
|
||
obsidian plugins format=json # JSON 输出
|
||
|
||
obsidian plugins:enabled # 只列启用的
|
||
obsidian plugins:enabled filter=community versions format=json
|
||
|
||
obsidian plugin id=dataview # 某插件详情
|
||
obsidian plugin id=<id> # 通过 ID 查询
|
||
```
|
||
|
||
```bash
|
||
# 启用/禁用/安装/卸载
|
||
obsidian plugin:enable id=daily-notes # 启用核心插件
|
||
obsidian plugin:enable id=dataview filter=community
|
||
obsidian plugin:disable id=dataview filter=community
|
||
obsidian plugin:install id=obsidian-git enable # 安装并立即启用(社区)
|
||
obsidian plugin:uninstall id=dataview
|
||
obsidian plugin:reload id=dataview # 开发用:重载插件
|
||
```
|
||
|
||
### 安全模式(Restricted Mode)
|
||
|
||
```bash
|
||
obsidian plugins:restrict on # 开启受限模式(禁用所有社区插件)
|
||
obsidian plugins:restrict off # 关闭
|
||
obsidian plugins:restrict # 查询状态
|
||
```
|
||
|
||
### 主题(Themes)
|
||
|
||
```bash
|
||
obsidian themes # 列出所有已安装主题
|
||
obsidian themes versions # 含版本号
|
||
obsidian theme # 当前主题
|
||
obsidian theme name="Minimal" # 某主题详情
|
||
|
||
obsidian theme:set name="Minimal" # 切换主题
|
||
obsidian theme:set name="" # 恢复默认
|
||
obsidian theme:install name="Minimal" enable # 安装并启用
|
||
obsidian theme:uninstall name="Minimal"
|
||
```
|
||
|
||
### CSS Snippets
|
||
|
||
```bash
|
||
obsidian snippets # 列出所有已安装 snippets
|
||
obsidian snippets:enabled # 已启用的
|
||
|
||
obsidian snippet:enable name="compact-tables"
|
||
obsidian snippet:disable name="compact-tables"
|
||
```
|
||
|
||
### Templates(核心插件)
|
||
|
||
```bash
|
||
obsidian templates # 列出所有模板
|
||
obsidian templates total # 数量
|
||
|
||
obsidian template:read name="daily" # 读取模板内容
|
||
obsidian template:read name="daily" resolve title="2026-04-09" # 解析变量后读取
|
||
|
||
obsidian template:insert name="meeting" # 插入到当前激活文件
|
||
```
|
||
|
||
> 💡 Templates 插件需要先启用:`obsidian plugin:enable id=templates` 并在设置中指定模板文件夹。
|
||
|
||
### Commands(Obsidian 内置命令系统)
|
||
|
||
```bash
|
||
obsidian commands # 列出所有可用命令
|
||
obsidian commands filter=editor # 按前缀筛选
|
||
obsidian commands filter=daily # 每日笔记相关命令
|
||
|
||
obsidian command id="editor:toggle-bold" # 执行命令(触发 Obsidian 内部动作)
|
||
obsidian command id="workspace:split-vertical"
|
||
obsidian command id="app:go-back"
|
||
```
|
||
|
||
### Hotkeys 快捷键
|
||
|
||
```bash
|
||
obsidian hotkeys # 列出所有快捷键(tsv)
|
||
obsidian hotkeys format=json
|
||
obsidian hotkeys all # 含未绑定快捷键的命令
|
||
obsidian hotkeys verbose # 显示是否自定义
|
||
obsidian hotkeys total # 数量
|
||
|
||
obsidian hotkey id="editor:toggle-bold" # 查询某命令的快捷键
|
||
obsidian hotkey id="editor:toggle-bold" verbose
|
||
```
|
||
|
||
---
|
||
|
||
## AI Agent 最佳实践
|
||
|
||
### 场景 1 · 首次配置检查清单
|
||
|
||
Agent 第一次进入某 vault,验证基础环境:
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# obsidian-doctor.sh:环境体检
|
||
|
||
echo "=== Vault 基础 ==="
|
||
obsidian vault info=name
|
||
obsidian version
|
||
|
||
echo "=== 核心插件启用状态 ==="
|
||
REQUIRED=("daily-notes" "templates" "file-recovery" "command-palette" "backlink" "outgoing-link")
|
||
for p in "${REQUIRED[@]}"; do
|
||
STATUS=$(obsidian plugin id=$p 2>/dev/null | grep -o 'enabled: true' && echo "✅" || echo "❌ $p 未启用")
|
||
echo "$STATUS"
|
||
done
|
||
|
||
echo "=== 社区插件 ==="
|
||
obsidian plugins filter=community versions
|
||
|
||
echo "=== 主题 ==="
|
||
obsidian theme
|
||
|
||
echo "=== 受限模式 ==="
|
||
obsidian plugins:restrict
|
||
```
|
||
|
||
### 场景 2 · 为 AI 工作流推荐的最小插件集
|
||
|
||
```bash
|
||
# 启用核心插件(最小集)
|
||
obsidian plugin:enable id=daily-notes
|
||
obsidian plugin:enable id=templates
|
||
obsidian plugin:enable id=file-recovery
|
||
obsidian plugin:enable id=backlink
|
||
obsidian plugin:enable id=outgoing-link
|
||
obsidian plugin:enable id=tag-pane
|
||
obsidian plugin:enable id=graph
|
||
obsidian plugin:enable id=properties # Obsidian 1.4+ 的属性面板
|
||
|
||
# 可选:启用 Bases(1.9+)
|
||
obsidian plugin:enable id=bases
|
||
```
|
||
|
||
**推荐社区插件**(AI 协作友好):
|
||
|
||
| 插件 ID | 用途 | 何时需要 |
|
||
|---------|------|---------|
|
||
| `obsidian-git` | Git 集成 | 永远需要(vault 备份) |
|
||
| `templater-obsidian` | 高级模板(JS 可执行) | 动态模板 |
|
||
| `dataview` | 查询语言 | 还没迁移到 Bases |
|
||
| `tasks` | 高级任务管理 | 重度 GTD 用户 |
|
||
| `calendar` | 日历侧栏 | 频繁用每日笔记 |
|
||
| `advanced-uri` | URI 命令增强 | 脚本化自动化 |
|
||
|
||
```bash
|
||
# 批量安装
|
||
for p in obsidian-git templater-obsidian tasks calendar; do
|
||
obsidian plugin:install id=$p enable
|
||
done
|
||
```
|
||
|
||
### 场景 3 · 动态调用 Obsidian 内部命令
|
||
|
||
`obsidian command id=...` 可以执行**任意** Obsidian 命令,相当于 UI 层的自动化:
|
||
|
||
```bash
|
||
# 拆分工作区(左侧文件树 + 右侧编辑)
|
||
obsidian command id="workspace:split-vertical"
|
||
|
||
# 打开快速切换器
|
||
obsidian command id="switcher:open"
|
||
|
||
# 打开命令面板(不常用,因为命令面板本身是交互式 UI)
|
||
obsidian command id="command-palette:open"
|
||
|
||
# 切换 Reading View
|
||
obsidian command id="markdown:toggle-preview"
|
||
|
||
# 折叠所有标题
|
||
obsidian command id="editor:fold-all"
|
||
```
|
||
|
||
**发现命令 ID**:`obsidian commands | less` 或 `obsidian commands filter=<prefix>`。
|
||
|
||
### 场景 4 · 模板驱动的笔记创建
|
||
|
||
```bash
|
||
# 1. 先看有哪些模板
|
||
obsidian templates
|
||
|
||
# 2. 预览模板内容
|
||
obsidian template:read name="project-kickoff" resolve title="Alpha"
|
||
|
||
# 3. 基于模板创建新笔记(通过 create + content)
|
||
CONTENT=$(obsidian template:read name="project-kickoff" resolve title="Alpha")
|
||
obsidian create path="10-Projects/alpha/README.md" content="$CONTENT" open
|
||
```
|
||
|
||
### 场景 5 · CSS Snippet 自动切换(深色/浅色模式)
|
||
|
||
```bash
|
||
# 检测系统时间切换不同的 CSS snippet
|
||
HOUR=$(date +%H)
|
||
if [ "$HOUR" -ge 19 ] || [ "$HOUR" -lt 7 ]; then
|
||
obsidian snippet:enable name="dark-extra"
|
||
obsidian snippet:disable name="light-extra"
|
||
else
|
||
obsidian snippet:enable name="light-extra"
|
||
obsidian snippet:disable name="dark-extra"
|
||
fi
|
||
```
|
||
|
||
### 场景 6 · 快捷键审计
|
||
|
||
```bash
|
||
# 查自定义过的快捷键(避免冲突)
|
||
obsidian hotkeys verbose format=json | jq '.[] | select(.custom == true)'
|
||
|
||
# 查没有快捷键绑定的命令(发现可以加快捷键的命令)
|
||
obsidian hotkeys all format=json | jq '.[] | select(.hotkey == null)'
|
||
```
|
||
|
||
---
|
||
|
||
## 与其他技能的协作
|
||
|
||
| 场景 | 链路 |
|
||
|-----|------|
|
||
| 启用 Daily Notes 前置 | obsidian-plugins → **obsidian-daily** |
|
||
| 启用 Bases 前置 | obsidian-plugins(`plugin:enable id=bases`)→ **obsidian-bases** |
|
||
| 启用 Templates 前置 | obsidian-plugins → **obsidian-daily**(daily template) |
|
||
| 启用 File Recovery 前置 | obsidian-plugins → **obsidian-history** |
|
||
| 推荐插件清单 | obsidian-plugins + **obsidian-workflow-pkm** |
|
||
|
||
---
|
||
|
||
## 常见陷阱
|
||
|
||
| 现象 | 原因 | 对策 |
|
||
|------|------|------|
|
||
| `plugin:install` 失败 | 处于 Restricted Mode | `plugins:restrict off` |
|
||
| 社区插件 ID 写错 | 大小写/连字符敏感 | 先 `plugins filter=community` 查正确 ID |
|
||
| `command id=...` 无效 | 命令 ID 写错 | `commands filter=<prefix>` 查询 |
|
||
| Template 变量未解析 | 没加 `resolve` 参数 | `template:read name=<n> resolve` |
|
||
| Templates 插件找不到模板 | 模板文件夹没配 | Settings → Templates → Template folder location |
|
||
| 切主题后样式错乱 | 新主题与某 snippet 冲突 | 临时 `snippet:disable` 所有 |
|
||
| 社区插件升级后命令失效 | 插件 API 变更 | `plugin:reload` 或重启 Obsidian |
|
||
| Restricted Mode 下 agent 脚本报错 | Community 插件全部禁用 | 脚本增加 `plugins:restrict` 检查 |
|