如题,每次打开软件,上次阅读的界面就没有了,默认跳转到第一行。
极不方便。
怎么才能打开软件,就是我上次阅读的界面?
如题,每次打开软件,上次阅读的界面就没有了,默认跳转到第一行。
极不方便。
怎么才能打开软件,就是我上次阅读的界面?
本来看到这个问题第一反应想说可以用 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
这个文件,这样再次打开软件就可以回到上次阅读的位置了。
已解决,十分感谢
我在Windows裡測試, 離開Obsidian時,cursor-positions.json都會被清成 0 Byte,而且重進Obsidian時,Vault reindex會執行。
这个插件我在windows上用没有遇到过问题欸,因为手机上用确实没有效果才看了一下,不知道你说的这个情况是怎么回事