“实时预览”和“源码模式”的切换导致当前行位置严重偏移

遇到的问题

我在使用 Obsidian 的时候经常(会在细节上)需要切换默认编辑模式中的“实时预览”和“源码模式”,经常使用的情况是从实时预览模式切换到源码模式,然后修改细节,完毕之后回到实时预览模式。其中就遇到这样一个问题:

如果文章中使用到的 callout 样式比较多(我写的很多文章会用到 callout 样式),两个编辑模式的切换都会产生当前行的位移移动很大,即原本想要编辑的行在目光所处的位置,但是切换之后,当前行甚至不在屏幕显示范围内,文章被向前或向后移动至少有 15 行的距离,我甚至都不知道光标在哪里。

对于没有什么 callout 类似样式的文章来说,这种现象也存在,但是“行差”也就两三行,不存在找不到光标位置的问题。

后续我做了一下测试,我在文章的第二段(约 10% 的位置)选中某些文字,然后不断切“实时预览”和“源码模式”,屏幕显示的行数会先减小但后增大,最终的视图会停留在文章的最后一行的位置。

预期的效果

其实两种视图编辑模式之间切换会出现“行差”我是能理解的,毕竟渲染效果和源码之间必然有差异。

但是逻辑上来说,做成对的切换操作,即切换两次之后切回原来的模式,屏幕显示的文本行范围应该是大致不发生变动的,但是事实是屏幕显示的行号范围往往会有所增加。

已尝试的解决方案

我暂时还没想到解决思路,所以特地问一下这个问题,打扰麻烦了。

相关信息

Obsidian version: v1.7.4
Installer version: v1.6.5
Operating system: Windows 11 Home China 10.0.22631

  • Community plugins
    • File Cleaner Redux (v1.1.1)
    • Emoji Toolbar (v0.4.1)
    • Code Styler (v1.1.7)
    • Quiet Outline (v0.3.37)
    • Dataview (v0.5.67)
    • Latex Suite (v1.9.7)
    • Advanced Tables (v0.22.1)
    • Global Search and Replace (v0.5.0)
    • Fuzzy Chinese Pinyin (v2.27.6)
    • Style Settings (v1.0.9)
    • Templater (v2.9.1)
    • Minimal Theme Settings (v8.1.1)
    • Highlightr (v1.2.2)
    • Tag Wrangler (v0.6.1)
    • Easy Typing (v5.5.4)
    • ZH 增强编辑 (v0.4.4)
    • Code Editor Shortcuts (v1.14.0)
    • Auto Link Title (v1.5.4)

基本上无解,两个模式的渲染逻辑是不一样的,元素排布都不同,就无从统一了

最优的方法就是自己加css补丁,调整行距行高

官方短期内是不会做改进的,因为需要为了兼容性遵守传统markdown,这也导致块链接等功能都无法做精细

大佬,我也碰到这个问题,可以分享一下css吗?

每个人的主题、缩放、字号都不一样,一般只能自己调整,正文的行高行距参考这个css: