Windows 右键用obsidian直接打开文件夹

分享一个Windows右键直接用Obsidian打开文件夹的小工具

最近在用Obsidian的时候,总是遇到一个小困扰:想要把某个项目文件夹或者资料文件夹快速在Obsidian中打开作为vault,但是每次都要先打开Obsidian,然后选择"打开文件夹作为保险库",再一层层点击找到目标文件夹。

作为一个懒人,我觉得这个过程太繁琐了,于是花了点时间写了个小工具,现在可以直接在任意文件夹上右键,选择"Open with Obsidian"就能立即用Obsidian打开这个文件夹。

为什么要做这个工具

平时工作中经常需要在不同的项目文件夹之间切换,比如今天在整理学习笔记,明天要处理工作文档,后天又要看看个人项目的资料。之前的流程是:

  1. 打开Obsidian

  2. 文件 → 打开保险库 → 从文件夹打开保险库

  3. 在文件选择器里找到目标文件夹

  4. 确认打开

现在的流程变成了:

  1. 在目标文件夹上右键

  2. 选择"Open with Obsidian"

  3. 完了

技术实现思路

这个工具主要做了两件事:

1. 注册表添加右键菜单

通过修改Windows注册表,在文件夹的右键菜单中添加了两个入口:

  • 在文件夹上右键:显示"Open with Obsidian"

  • 在文件夹内空白处右键:显示"Open this folder in Obsidian"

2. 自动修改Obsidian配置

Obsidian的vault信息存储在 %APPDATA%\obsidian\obsidian.json 文件中。工具会:

  • 读取现有的配置文件

  • 为新文件夹生成唯一的vault ID(用MD5哈希的前16位)

  • 将新文件夹添加到vault列表中

  • 设置为当前活跃vault

  • 启动Obsidian

关键的配置格式是这样的:

{
  "vaults": {
    "vault_id": {
      "path": "C:\\Users\\YourName\\Documents\\SomeFolder",
      "ts": 1692000000000,
      "open": true
    }
  }
}

使用体验

安装之后的使用非常简单。比如我桌面上有个"读书笔记"文件夹,直接右键选择"Open with Obsidian",几秒钟后Obsidian就自动打开了这个文件夹作为vault。

最方便的是,即使这个文件夹之前从来没有在Obsidian中打开过,工具也会自动把它添加到vault列表中,下次可以直接从Obsidian的vault切换器中选择。

安装使用

预编译版本

如果不想折腾代码,可以直接下载编译好的版本:

  1. 去Github的Releases页面下载压缩包

  2. 解压后以管理员身份运行安装程序

  3. 安装程序会自动找到Obsidian路径并配置右键菜单

从源码构建

技术向的朋友也可以自己编译:


git clone https://github.com/RavenHogwarts/obsidian-folder-opener.git

cd open-folder-with-obsidian

pip install -r requirements.txt

build.bat

一些技术细节

Obsidian路径查找

安装程序会在这些位置查找Obsidian:

  • 注册表中的卸载信息

  • 常见安装路径(Program Files等)

  • 用户自定义路径

卸载

如果不需要了,删除也很简单:

  1. 运行项目中的 remove_obsidian_context_menu.reg 文件移除右键菜单

  2. 从Obsidian安装目录删除 open_folder_with_obsidian.exe 文件

开源地址

项目已经开源在Github:GitHub - RavenHogWarts/obsidian-folder-opener: 一个Windows右键菜单工具,让您可以直接用Obsidian打开任意文件夹作为vault

欢迎提交issue和PR,也欢迎大家提建议。


这个小工具虽然功能简单,但确实解决了我日常使用Obsidian的一个痛点。如果你也有类似的需求,不妨试试看。有什么问题可以在下面评论,我会尽量回复。

1 个赞

挺好。看了下代码,这个程序似乎只是将新文件夹添加到 obsidian.json,初始化是留给 Obsidian 自己处理的,并没有挪移配置之类。想问下有考虑处理插件以及配置同步的问题吗?

顺带一提以前的情况,有人是直接复制 .obsidian 文件夹到当前目录,或者用软链接。

我觉得 .obsidian 还是可以使用复制粘贴的方式,复制过来之后,直接文件夹内右键打开就行

毕竟之前是得先打开ob,然后切换库,选择路径