Obsidian工作区切换时自动保存的简单实现

发现 Obsidian 工作区可以像 Edge 工作区一样实时保存且简单的方法,就是每次切换工作区的时候设置保存一次工作区就行了,也不需要间隔保存工作区。

c06b8bf68eeb12fabe9497e2c2796d90

只需要在 Quickadd 里面配置个宏(先保存后切换)即可,即在每次切换的时候会自动保存工作区,再也不用担心工作区没有及时更新了。

image

最后配置个快捷键方便切换就行:

基本上什么插件都不需要(除 Quickadd),就原生的命令操作组合起来就可以了。

2 个赞

才发现有自带命令用来保存当前工作区、管理各工作区
我之前都要手动先看看现在是什么名字,然后再保存一遍,要点开左边栏的图标2次
后面不耐烦,就用Note Toolbar插件运行js代码进行工作区切换,这个「一键切换至指定工作区」我现在经常用:

const TARGET_WORKSPACE = '工作区名'; // 将引号内替换为您想切换到的目标工作空间名称

(function() {
    try {
        // 获取 Workspaces 插件实例
        const workspacesPlugin = app.internalPlugins.getPluginById('workspaces');
        
        // 检查插件是否可用
        if (!workspacesPlugin || !workspacesPlugin.enabled) {
            throw new Error('Workspaces 插件未启用或不可用,请先启用核心的"工作区"插件。');
        }

        const workspaceInstance = workspacesPlugin.instance;
        const currentWorkspace = workspaceInstance.activeWorkspace;

        // 1. 保存当前工作空间
        if (currentWorkspace) {
            workspaceInstance.saveWorkspace(currentWorkspace);
            console.log(`工作空间 "${currentWorkspace}" 已保存。`);
        } else {
            console.log('未找到活动工作空间,跳过保存步骤。');
        }

        // 2. 加载目标工作空间
        workspaceInstance.loadWorkspace(TARGET_WORKSPACE);
        new Notice(`✅ 已保存"${currentWorkspace}"并切换到"${TARGET_WORKSPACE}"`);

    } catch (error) {
        // 错误处理
        console.error('工作空间操作失败:', error);
        new Notice(`❌ 操作失败: ${error.message}`, 5000);
    }
})();

image
注册成命令后能设定快捷键运行

1 个赞