行内代码导致其后的文本不显示

在使用思源的最近两个版本时,行内代码后跟着中文字符时会出现光标移动不正确以及内容显示不正确

image.png

此时光标在右边,当使用键盘左键或者鼠标鼠标直接点击该行时,光标会移动到行内代码后面,如下

image.png

如果光标此时在这个位置按退格键会删掉后面的文字,再按一次退格键,则后面的一行文字都消失

image.png

image.png

此时如果按空格键,则退格没有删除的文字会出现

image.png

这个 bug 可以稳定复现,后面如果是英文字符则没有这个问题,可以通过行内代码后面加一个空格隔开中文字符来避免

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23721 引用 • 96308 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8823 引用 • 40217 回帖 • 132 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 重现不了这个问题,你使用思源的环境是什么?

    3 回复
  • lhw233

    win 10

  • lhw233

    screenshots.gif

    可以看这个动图,我先打了一个行内公式,然后打中文字符,之后左移光标一格,就到了行内公式的后面,之后按退格键,删除倒数第二个字符,其余的如图

  • lhw233

    使用的是思源 3.1.19,用的写味主题

  • lhw233

    切换回默认主题并关闭所有插件,然后重启思源笔记,并新建一个笔记后,依然存在这个问题

  • lhw233

    经过测试,

    行级代码 行级代码后的字符 是否触发 bug
    纯数字 任意 不触发
    任意 纯数字 不触发
    含有中文字符 非数字 触发
    非纯数字 中文字符 触发
  • EmptyLight

    这已经是我在社区看到的第三个这样的问题了,我干脆自己试了一下,也没能复现这个问题

    2 回复
  • lhw233 2 评论

    我怀疑和零宽空白符有关,我不懂 web,但这会儿打开开发者工具,
    我先输入一个行内代码image.png
    此时对应的块在行内代码里和后面有零宽空白符image.png

    如果我输入数字image.png

    数字会位于零宽空白符后image.png

    当我输入中文字符image.png

    image.png

    此时已经回触发 bug,使得从句末向左移动光标回到行内代码后面,当我在行内代码后删除字符,此时会让字符串分割为两个image.png
    感觉像是零宽字符让后面的中文字符串被认为是一个 block,当开始删除字符后,形成两个 block

    不过不懂 web,也不知道思源是怎么写的,目前看正常的新的 block,一般只在行末有零宽空白符,但行级代码会在其后跟一个零宽空白符,可能触发了思源的什么 bug 吧
    lhw233
    说起来我也想知道这个字符为什么会分开,问问看 Issue #13782 · siyuan-note/siyuan
    JeffreyChen
  • lhw233

    如果是中文字符小时的 bug,此时开发者工具里显示是这样的image.png

  • lhw233

    我怀疑是零宽空格后接中文字符导致的渲染错误,你可以看看我的新的回复

  • 遇到了同样问题,默认主题无插件也存在行内代码导致的光标异常、文字消失,后者可以 F5 刷新恢复显示。

    1 回复
  • lhw233

    文字消失时,出现了一个多的零宽空格

    image.png

    可以看到,这第的 div 下面只有 4 个元素,而在右边的显示里,有 5 个子节点,进一步查看,节点 2 和节点 3 都是零宽空格,而节点 4 才是"本反灌"文本image.png

  • lhw233

    总结

    • 光标异常:零宽空格后接中文字符会导致光标异常
    • 文字消失:在一定操作下,会生成多余的零宽空格,连续两个零宽空格可能导致后续文字不渲染
  • lhw233 1 赞同

    F5 刷新后,好像会合并文本节点,会删除多余的零宽空格,然后文本显示正常了,但由于还是零宽空格,光标异常依然存在

  • vivitrx

    我也遇到这个问题了

    当我打出:

    我们想要访问 A[0] A[1] A[2] ... A[9999999] 共 9999999 个元素。

    此时,我的光标处于此处:

    我们想要访问 A[0] A[1] A[2] ... A[9999999] 共 9999999 个元素。

    --------------------------------------------^ 也就是指向 9

    但是当我尝试向右移动一格后,光标位置会变成:

    我们想要访问 A[0] A[1] A[2] ... A[9999999] 共 9999999 个元素。

    --------------^ 也就是指向 A

    1 回复
  • vivitrx

    找到解决办法了,当行级代码的开头是一个中文字符时,就可以避免这个问题,比如说你可以使用中文句号:

    我们想要访问 。A[0] A[1] A[2] ... A[9999999] 共 9999999 个元素。

    --------------^ 在行级代码开头加入中文句号

    但是这也太丑陋了

  • 你们遇到的这个问题有点奇妙,我和 D 都重现不出来

  • lhw233

    我把版本退回到 3.16 后问题没有了

    1 回复
  • 那个键盘块是不是也有问题,我这键盘块和代码块一样问题

  • 同样是 3.19 版本,mac 版没有问题,win 版有问题,问题跟楼主说的一致,win 版回到 3.16 版本就可以正常使用。

  • 同样是 3.19 版本,mac 版没有问题,win 版有问题,问题跟楼主说的一致,win 版回到 3.16 版本就可以正常使用。

  • Matcha

    不光是行内代码有这个问题,键盘块也有问题。我的版本是 3.19,系统环境是 Windows10;

    我在 3.18 就发现这个问题了,3.17 没有出现过。

请输入回帖内容 ...

推荐标签 标签

  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 3 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    93 引用 • 900 回帖
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 567 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 345 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 9 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 484 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 748 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    36 引用 • 151 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    92 引用 • 752 回帖 • 1 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    29 引用 • 108 回帖
  • AWS
    11 引用 • 28 回帖 • 3 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 793 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 997 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    948 引用 • 943 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 1 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • CodeMirror
    1 引用 • 2 回帖 • 134 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 437 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 773 关注