Skip to content

Apple 生态集成

Obsidian 在 Apple 生态中有出色的原生支持。本文介绍如何利用 iCloud 同步、快捷指令、AppleScript 等功能打造无缝的跨设备工作流。

iCloud 同步

设置 iCloud 同步

iCloud 同步是 Apple 生态中最简单的 Obsidian 同步方案:

  1. 在 macOS 上,将仓库创建在 iCloud Drive 目录中
  2. 在 iOS 上,Obsidian 会自动识别 iCloud Drive 中的仓库

仓库路径:

text
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/

优缺点

优点缺点
免费冲突处理弱
自动同步同步延迟
原生集成大文件同步慢
无需配置不支持选择性同步
版本历史恢复不直观

最佳实践

  1. 避免同时编辑:不要在两个设备上同时编辑同一笔记
  2. 等待同步完成:修改后等几秒再切换设备
  3. 定期检查冲突文件:iCloud 会创建冲突副本
  4. 关闭优化存储:设置 → Apple ID → iCloud → 确保 Obsidian 文件已下载

常见问题排查

bash
# 检查 iCloud 同步状态
brctl log --wait --shorten

# 强制同步
brctl download ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/

# 查看 iCloud 存储使用
du -sh ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/

iOS 快捷指令

基础集成

Obsidian 支持通过 URL Scheme 与快捷指令集成:

text
obsidian://open?vault=MyVault&file=Notes/MyNote
obsidian://new?vault=MyVault&name=QuickNote&content=Hello
obsidian://search?vault=MyVault&query=keyword

创建快捷指令

快速添加日记

  1. 打开「快捷指令」App
  2. 创建新快捷指令
  3. 添加「URL」操作:
    obsidian://new?vault=MyVault&name={{当前日期}}&content={{剪贴板}}&folder=Daily
  4. 添加「打开 URL」操作
  5. 保存为「添加到日记」

保存剪贴板内容

  1. 获取剪贴板内容
  2. URL 编码内容
  3. 构造 Obsidian URL:
    obsidian://new?vault=MyVault&name=Clip%20{{当前时间}}&content={{URL编码后的剪贴板内容}}

搜索并打开笔记

  1. 请求输入搜索关键词
  2. 构造搜索 URL:
    obsidian://search?vault=MyVault&query={{输入的关键词}}

高级快捷指令

从 Safari 保存网页

text
1. 获取 Safari 网页信息(标题、URL、选中文本)
2. 构造 Markdown 内容:
   # {{网页标题}}
   来源: {{URL}}
   
   {{选中文本}}
3. 构造 Obsidian URL:
   obsidian://new?vault=MyVault&name={{网页标题}}&content={{Markdown内容}}

会议记录模板

text
1. 获取当前日期和时间
2. 获取参与者列表(从日历事件)
3. 构造模板内容
4. 在 Obsidian 中创建新笔记

从照片创建笔记

text
1. 选择照片
2. 获取照片的位置和时间信息
3. 将照片保存到仓库附件文件夹
4. 创建包含照片链接的笔记

AppleScript 自动化

基础 AppleScript

applescript
-- 打开 Obsidian
tell application "Obsidian"
  activate
end tell

-- 打开指定仓库和笔记
tell application "Obsidian"
  activate
  open location "obsidian://open?vault=MyVault&file=Today"
end tell

创建笔记

applescript
-- 使用 URL Scheme 创建新笔记
on createNote(vaultName, noteName, content)
  set encodedContent to urlencode(content)
  set theURL to "obsidian://new?vault=" & vaultName & "&name=" & noteName & "&content=" & encodedContent
  tell application "Obsidian"
    activate
    open location theURL
  end tell
end createNote

-- URL 编码辅助函数
on urlencode(theText)
  set theTextEnc to ""
  repeat with eachChar in theText
    set useChar to eachChar
    set eachCharNum to (id of eachChar)
    if eachCharNum > 32 and eachCharNum < 127 then
      set useChar to eachChar
    else
      set useChar to "%" & (text -2 thru -1 of ("0" & (eachCharNum as text) as text))
    end if
    set theTextEnc to theTextEnc & useChar
  end repeat
  return theTextEnc
end urlencode

与其他应用集成

applescript
-- 从 Safari 保存页面到 Obsidian
tell application "Safari"
  set pageTitle to name of current tab of front window
  set pageURL to URL of current tab of front window
  set pageContent to do JavaScript "document.getSelection().toString()" in current tab of front window
end tell

set noteContent to "# " & pageTitle & return & "来源: " & pageURL & return & return & pageContent
createNote("MyVault", pageTitle, noteContent)

日程集成

applescript
-- 从日历获取今日事件并创建日记
tell application "Calendar"
  set todayEvents to every event of calendar "工作" whose start date >= (current date) and start date < (current date) + 1 * days
  
  set eventList to ""
  repeat with evt in todayEvents
    set eventTitle to summary of evt
    set eventStart to start date of evt
    set eventEnd to end date of evt
    set eventList to eventList & "- " & eventStart & " - " & eventEnd & " " & eventTitle & return
  end repeat
end tell

set dailyContent to "# 今日日程" & return & return & "## 日程安排" & return & eventList
createNote("MyVault", "Daily/" & (short date string of (current date)), dailyContent)

跨设备工作流

iPhone + Mac 协同

场景iPhoneMac
灵感捕捉快捷指令 → 新建笔记自动同步,编辑完善
网页剪藏Share Sheet → Obsidian整理到知识库
会议记录拍照 + 语音备忘录文字整理 + 标注
通勤阅读阅读模式 + 标注写读书笔记

iPhone 快捷操作

  1. 主屏幕小组件:添加 Obsidian 小组件快速访问最近笔记
  2. 分享菜单:从任何 App 分享内容到 Obsidian
  3. Siri 语音:「嘿 Siri,在 Obsidian 新建笔记」
  4. 触觉触控:长按 Obsidian 图标快速操作

iPad 分屏工作流

  1. 开启分屏模式
  2. 一侧打开 Obsidian
  3. 另一侧打开 Safari/邮件/文档
  4. 拖拽内容到 Obsidian

Automator 工作流

文件夹操作

创建 Automator 文件夹操作,当文件放入指定文件夹时自动在 Obsidian 创建笔记:

  1. 打开 Automator
  2. 新建「文件夹操作」
  3. 选择目标文件夹
  4. 添加「运行 Shell 脚本」操作
  5. 编写脚本:
bash
# 获取新增文件路径
for f in "$@"; do
  filename=$(basename "$f")
  name="${filename%.*}"
  content="# $name\n\n文件来源: $f\n\n"
  
  # URL 编码
  encoded_name=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$name'))")
  encoded_content=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$content'))")
  
  # 在 Obsidian 创建笔记
  open "obsidian://new?vault=MyVault&name=$encoded_name&content=$encoded_content"
done

日历提醒

创建 Automator 日历提醒,在事件触发时在 Obsidian 创建笔记:

applescript
on run {input, parameters}
  set eventName to item 1 of input
  set noteContent to "# " & eventName & return & return & "## 会议记录" & return & return & "- 日期:" & (short date string of (current date))
  
  tell application "Obsidian"
    activate
    open location "obsidian://new?vault=MyVault&name=" & eventName & "&content=" & noteContent
  end tell
  
  return input
end run

终端集成

使用 CLI 操作 Obsidian

bash
# 打开仓库
open "obsidian://open?vault=MyVault"

# 创建新笔记
open "obsidian://new?vault=MyVault&name=NewNote&content=Hello"

# 搜索
open "obsidian://search?vault=MyVault&query=keyword"

Shell 函数

~/.zshrc~/.bashrc 中添加:

bash
# Obsidian 快捷命令
obs() {
  local vault="${OBSIDIAN_VAULT:-MyVault}"
  local action="$1"
  shift

  case "$action" in
    open)
      open "obsidian://open?vault=$vault&file=$1"
      ;;
    new)
      local name="$1"
      local content="$2"
      open "obsidian://new?vault=$vault&name=$name&content=$content"
      ;;
    search)
      open "obsidian://search?vault=$vault&query=$1"
      ;;
    daily)
      local today=$(date +%Y-%m-%d)
      open "obsidian://open?vault=$vault&file=Daily/$today"
      ;;
    *)
      echo "Usage: obs {open|new|search|daily} [args]"
      ;;
  esac
}

使用示例:

bash
# 打开笔记
obs open "Projects/MyProject"

# 创建新笔记
obs new "Idea" "这是一个新想法"

# 搜索
obs search "关键词"

# 打开今日日记
obs daily

常见问题

iCloud 同步冲突怎么办?

iCloud 会创建冲突副本文件(名称包含冲突时间戳)。处理方法:

  1. 比较冲突文件和原文件
  2. 手动合并内容
  3. 删除冲突副本

快捷指令无法打开 Obsidian?

  1. 确保 Obsidian 已安装并至少打开过一次
  2. 检查 URL Scheme 是否正确
  3. 在设置中允许快捷指令打开应用

AppleScript 执行报错?

  1. 确保在系统设置中给予了辅助功能权限
  2. 检查 Obsidian 是否在前台运行
  3. 使用 open location 而非直接操作应用

相关资源