obsidian安卓版本,如何跳转到上次阅读界面?

如题,每次打开软件,上次阅读的界面就没有了,默认跳转到第一行。

极不方便。

怎么才能打开软件,就是我上次阅读的界面?

本来看到这个问题第一反应想说可以用 remember-cursor-position 插件的,但是试了一下发现竟然在手机上无法生效,cursor-positions.json 这个文件也根本没有生成。

看一下源码才发现它只在监听到退出 vault 事件的时候才会把内存中的滚动位置保存在文件中,但是在手机上一般都直接杀后台,自然不会有什么退出事件。

 this.registerEvent(this.app.workspace.on('quit', () => {
    this.writeDb(this.db);
 }));

解决方法也很简单,在手机上打开 \.obsidian\plugins\remember-cursor-position\main.js 这个文件,然后再下面这个地方加入this.writeDb(this.db);一行代码。

saveEphemeralState(st) {
    var _a;
    return __awaiter(this, void 0, void 0, function* () {
        let fileName = (_a = this.app.workspace.getActiveFile()) === null || _a === void 0 ? void 0 : _a.path;
        if (fileName && fileName == this.lastLoadedFileName) { //do not save if file changed or was not loaded
            this.db[fileName] = st;

            this.writeDb(this.db);//加入这一行代码

        }
    });
}

重启一下OB打开滚动一下就会发现目录下出现了 cursor-positions.json 这个文件,这样再次打开软件就可以回到上次阅读的位置了。

1 个赞

已解决,十分感谢 :blush:

我在Windows裡測試, 離開Obsidian時,cursor-positions.json都會被清成 0 Byte,而且重進Obsidian時,Vault reindex會執行。

这个插件我在windows上用没有遇到过问题欸,因为手机上用确实没有效果才看了一下,不知道你说的这个情况是怎么回事 :smiling_face_with_tear: