Skip to content

软换行形成空行拆分块问题 #3601

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
EastPearlStar2019 opened this issue Dec 11, 2021 · 35 comments
Closed

软换行形成空行拆分块问题 #3601

EastPearlStar2019 opened this issue Dec 11, 2021 · 35 comments

Comments

@EastPearlStar2019
Copy link

EastPearlStar2019 commented Dec 11, 2021

描述问题 Describe the problem

块内编辑,会频繁出现编辑内容被大量吃掉、【不显示】的情况

思源笔记,块里面,如果块内部本身又有加粗的话,若在第一行之前插入空行,或中间插入空行,这样,会非常频繁地出现:块里面的笔记被吃掉(不显示)的情况。

这个问题,很折腾,中间还考虑过换wolai或notion或未发布的anytype,但是经对比,还是思源笔记最合适自己。
只能忍之又忍。

上面说的笔记块内部的内容被吃掉,经多次经历,发现实际上并不是吃掉了,而是【不显示】而已。会在某时编辑时,此前大片已经不见了的块内的内容又重新跳出来。令人相当抓狂
注:被吃掉的,多数是那些【块引用】

期待的结果 Expected result

希望所见即所得编辑器能稳定一些。

截屏或者录屏演示 Screenshot or screen recording presentation

sy-block-edit

上面Gif可见,当编辑到了上面的那个情形时,只要在上面那里按一下Del键,底下面的两处引用,全部都不见了
Gif里面,那个Block的下部两行蓝色的,是块引用 。

图片
上面这幅图片,是在上面那个Gif消失两行之后的blocks的情形,可见下面出现了一个独立的新的一块(新出现的块是一个空行(看不到文字),这个空块原本是不存在的),同时这也就是【编辑块内段落时,正正是这样导致本是一个块的,这样自动被分割成两个块了。如果上面的录屏在那两处引用前后有其它不是块引用的文字,那么,上面那个空行块的地方是有文字的】,就不重新录屏了。已经能说明问题了。

版本环境 Version environment

  • Version: 1.5.4
  • Operating system:
  • Browser (if used):

日志文件 Log File

更多信息 More information

@EastPearlStar2019 EastPearlStar2019 changed the title 块内编辑,会频繁出现编辑内容被大量吃掉【不显示】的情况 块内编辑,会频繁出现编辑内容被大量吃掉、【不显示】的情况 Dec 11, 2021
@EastPearlStar2019
Copy link
Author

EastPearlStar2019 commented Dec 11, 2021

块内编辑若临时出现空行会出现令人抓狂的现象:引用消失、段落消失、或本为同一块的内容被自动截断为两个块,等等。
为了避免上述令人抓狂的问题,又舍不得抛弃思源笔记。
只有使用以下work around(替代办法)了:
【在编辑块内的段落时,避免在编辑过程出现空行、同时千万避免在块内容的第一行第一列尝试插入空行;若编辑真有必要出现临时空行,则必须自行在即将出现空行的地方预先输入一个多余的字符或文字,等该行编辑完成后,再将此前预填的多余字符去掉。】

@EastPearlStar2019
Copy link
Author

按D老大的要求,上传了录屏,制作成Gif了。

@EastPearlStar2019
Copy link
Author

这只是抓狂的其中一个现象。制作Gif有点难度,先只上传一个吧。

@EastPearlStar2019
Copy link
Author

一个块,作为一个独立的小整体,被引用到其它地方。这个作为源的块,在右边能出现引用的数字。把鼠标放在数字上面,能自动将所有引用的地方通过弹窗预览出来,预览效果胜过wolai好多好多。这个功能,是思源比其它笔记强大的地方。

@88250
Copy link
Member

88250 commented Dec 11, 2021

你好,内容块是根据编辑逻辑进行生成的, 比如段落块是不能允许中间出现空行的,出现空行以后会被打断为两个段落块。从反馈信息来看,应该是这个打断逻辑的实现有 bug,这个问题我们后面会定位。

目前的建议是不要使用 Shif+Enter 形成空行拆分块,请直接使用 Enter 来进行拆分。

@88250 88250 changed the title 块内编辑,会频繁出现编辑内容被大量吃掉、【不显示】的情况 软换行形成空行拆分块问题 Dec 11, 2021
@EastPearlStar2019
Copy link
Author

你好,内容块是根据编辑逻辑进行生成的, 比如段落块是不能允许中间出现空行的,出现空行以后会被打断为两个段落块。从反馈信息来看,应该是这个打断逻辑的实现有 bug,这个问题我们后面会定位。

目前的建议是不要使用 Shif+Enter 形成空行拆分块,请直接使用 Enter 来进行拆分。

非常感谢D老大。
我知道Shift+Enter与单纯的Enter的区别。
我的编辑目的是,原是同一个块的,在编辑过程要一直保持是一个块,不要出现断块或编辑内容消失的情形。
我的工作需要,要在不同的时间,对同一个块反复编辑(增删改)。不可避免地在编辑过程中会临时出现空行。空行不是我的编辑的最终效果,但是编辑过程不可避免总会临时出现空行。
再次感谢D老大。

@88250
Copy link
Member

88250 commented Dec 11, 2021

我的编辑目的是,原是同一个块的,在编辑过程要一直保持是一个块,不要出现断块或编辑内容消失的情形。

这个思源无法实现的,编辑操作会影响到块形成和类型转换和类型转换。比如对于一个块:

foo
bar

在 foo 后面插入 \n\n 以后,这个块就会形成两个块:

foo
bar

比如对于另一个块:

foo

在 foo 之前插入 * 的话会形成三个块(列表块、列表项块、段落块):

* foo

我的工作需要,要在不同的时间,对同一个块反复编辑(增删改)。不可避免地在编辑过程中会临时出现空行。空行不是我的编辑的最终效果,但是编辑过程不可避免总会临时出现空行。

空行肯定是需要的,所以建议你使用 Enter 来分段落,直接插入块,避免通过 Shift Enter 打断来拆分块。

@EastPearlStar2019
Copy link
Author

空行,不是我想要的。
空行是我在反复优化调整、编辑同一个块的时候,临时出现的。
想想在编辑word文档时,删除某个段落时 ,删空的地方,不就是自然的一个空行吗?
还有,块内编辑时,将某一行剪切往上移(粘贴),也是会出现隐含的临时的空行,这照样是会有【断块、内容消失】的问题。

感谢D老大,D老大好像,仍然是不明白我的意思。
这个问题,其实是很严重的。
D老大不妨自己反复编辑同一个块试试:同时删除块内两行 ,剪切块内部分内容上下移,行首插入新的一行,中间插入新的一行等等,这些都是最基本的编辑动作啊。但是这最基本的编辑动作,统统全部都时不时会出现问题。

@EastPearlStar2019
Copy link
Author

我的编辑目的是,原是同一个块的,在编辑过程要一直保持是一个块,不要出现断块或编辑内容消失的情形。

这个思源无法实现的,编辑操作会影响到块形成和类型转换和类型转换。比如对于一个块:

foo
bar

在 foo 后面插入 \n\n 以后,这个块就会形成两个块:

foo
bar

比如对于另一个块:

foo

在 foo 之前插入 * 的话会形成三个块(列表块、列表项块、段落块):

* foo

我的工作需要,要在不同的时间,对同一个块反复编辑(增删改)。不可避免地在编辑过程中会临时出现空行。空行不是我的编辑的最终效果,但是编辑过程不可避免总会临时出现空行。

空行肯定是需要的,所以建议你使用 Enter 来分段落,直接插入块,避免通过 Shift Enter 打断来拆分块。

空行,不是我想要的。
空行是我在反复优化调整、编辑同一个块的时候,临时出现的。
想想在编辑word文档时,删除某个段落时 ,删空的地方,不就是自然的一个空行吗?
还有,块内编辑时,将某一行剪切往上移(粘贴),也是会出现隐含的临时的空行,这照样是会有【断块、内容消失】的问题。

感谢D老大,D老大好像,仍然是不明白我的意思。
这个问题,其实是很严重的。
D老大不妨自己反复编辑同一个块试试:同时删除块内两行 ,剪切块内部分内容上下移,行首插入新的一行,中间插入新的一行等等,这些都是最基本的编辑动作啊。但是这最基本的编辑动作,统统全部都时不时会出现问题。

@EastPearlStar2019
Copy link
Author

D老大的意思是,一个块若形成之后,以后最好不要继续编辑了?
因为编辑,谁能避免使用:删除原某行,剪切某行上下移,新增插入某一行?

@88250
Copy link
Member

88250 commented Dec 11, 2021

建议使用 Enter 分块,不要使用 Shift Enter 块内换行。

@EastPearlStar2019
Copy link
Author

建议使用 Enter 分块,不要使用 Shift Enter 块内换行。

我没有使用过Enter来进行块内分行。我一直是使用Shift+Enter。

@EastPearlStar2019
Copy link
Author

建议使用 Enter 分块,不要使用 Shift Enter 块内换行。

如果这个块内编辑,会将原本同一个块的,分割成两块或者块内原文字被吃掉,那块引用,显然就是一个未完整支持的功能。
而,块引用,恰恰是思源笔记最大的卖点。

@EastPearlStar2019
Copy link
Author

建议使用 Enter 分块,不要使用 Shift Enter 块内换行。

想想,原来 块引用 关系建立起来了。
编辑源引用块,却崩溃地发现,源块被分成两块或N块了。

这还能叫是【块引用】吗?

@EastPearlStar2019
Copy link
Author

建议使用 Enter 分块,不要使用 Shift Enter 块内换行。

这个不需要Shift+Enter或Enter都能重现啊。
你看我的Gif图,哪里有用到Shift+Enter或Enter,整个Gif里面我只按了一个键Del,下面的内容就不见了。

@88250
Copy link
Member

88250 commented Dec 11, 2021

想想,原来 块引用 关系建立起来了。 编辑源引用块,却崩溃地发现,源块被分成两块或N块了。

这还能叫是【块引用】吗?

试想这样一个场景:已经有一个块被引用后又被删除,那引用处是不是就无法找到它了呢?

@EastPearlStar2019
Copy link
Author

我只是编辑块内的某一行啊。又不是整个块去掉。

@EastPearlStar2019
Copy link
Author

想想,原来 块引用 关系建立起来了。 编辑源引用块,却崩溃地发现,源块被分成两块或N块了。
这还能叫是【块引用】吗?

试想这样一个场景:已经有一个块被引用后又被删除,那引用处是不是就无法找到它了呢?

这个缺点,完全能将最大卖点【块引用】打垮啊。

@88250
Copy link
Member

88250 commented Dec 11, 2021

这个不需要Shift+Enter或Enter都能重现啊。
你看我的Gif图,哪里有用到Shift+Enter或Enter,整个Gif里面我只按了一个键Del,下面的内容就不见了。

从你演示的动图中可以看出,这个块是通过 Shift Enter 形成的,所以我一直在建议你不要用 Shift Enter,而是直接 Enter 拆分块。

@EastPearlStar2019
Copy link
Author

人家原本的编辑目的是保持在同一个块啊。是软件自身自动将同一块断截成多块。断成多块,不是编辑者的自己的行为。

@EastPearlStar2019
Copy link
Author

这个不需要Shift+Enter或Enter都能重现啊。
你看我的Gif图,哪里有用到Shift+Enter或Enter,整个Gif里面我只按了一个键Del,下面的内容就不见了。

从你演示的动图中可以看出,这个块是通过 Shift Enter 形成的,所以我一直在建议你不要用 Shift Enter,而是直接 Enter 拆分块。

但是编辑过程,不是要分块啊。
分块谁不会啊。
我只是为了录屏,使用最简单的方式重现而已。
你编辑一个段落,编辑过程难道不会临时出现空行?新插入一行,怎么插入,除了我最开始的work around的方法,还有其它办法吗?

@88250
Copy link
Member

88250 commented Dec 11, 2021

想想,原来 块引用 关系建立起来了。 编辑源引用块,却崩溃地发现,源块被分成两块或N块了。
这还能叫是【块引用】吗?

试想这样一个场景:已经有一个块被引用后又被删除,那引用处是不是就无法找到它了呢?

这个缺点,完全能将最大卖点【块引用】打垮啊。

好像所有支持“块引用”的产品都允许删除定义块。

@88250
Copy link
Member

88250 commented Dec 11, 2021

人家原本的编辑目的是保持在同一个块啊。是软件自身自动将同一块断截成多块。断成多块,不是编辑者的自己的行为。

这一点一开始我就告诉你了,请参考 #3601 (comment)

@EastPearlStar2019
Copy link
Author

好吧。
我忍你。

@EastPearlStar2019
Copy link
Author

这个不需要Shift+Enter或Enter都能重现啊。
你看我的Gif图,哪里有用到Shift+Enter或Enter,整个Gif里面我只按了一个键Del,下面的内容就不见了。

从你演示的动图中可以看出,这个块是通过 Shift Enter 形成的,所以我一直在建议你不要用 Shift Enter,而是直接 Enter 拆分块。

你错了。
我真的没有用到Shift+Enter或Enter,我只是将原本空两行的那地方,使用删除。删除之后,就自然出现了两个空行。

@88250
Copy link
Member

88250 commented Dec 11, 2021

但是编辑过程,不是要分块啊。
分块谁不会啊。
我只是为了录屏,使用最简单的方式重现而已。

我并没有说这个不是 bug。

你编辑一个段落,编辑过程难道不会临时出现空行?新插入一行,怎么插入,除了我最开始的work around的方法,还有其它办法吗?

我编辑段落不会临时产生空行,你信么 :trollface:

用 Enter 产生空行,最后说一遍了啊。

好吧。
我忍你。

千万不要忍着用,用了一肚子火不说,还耽误你的生产效率。思源不好用就用其他产品,我推荐你试试 https://github.com/logseq/logseq

@88250
Copy link
Member

88250 commented Dec 11, 2021

你错了。
我真的没有用到Shift+Enter或Enter,我只是将原本空两行的那地方,使用删除。删除之后,就自然出现了两个空行。

我错了的话,那麻烦你告诉我一下这个块内空行时如何生成的:

image

我们后面看下这种情况如何解决,谢谢。

@EastPearlStar2019
Copy link
Author

辛苦D老大。

@EastPearlStar2019
Copy link
Author

你错了。
我真的没有用到Shift+Enter或Enter,我只是将原本空两行的那地方,使用删除。删除之后,就自然出现了两个空行。

我错了的话,那麻烦你告诉我一下这个块内空行时如何生成的:

image

我们后面看下这种情况如何解决,谢谢。

sy-block-edit3
Gif图,过程如上,仅仅是选中之后,按了一下Del,原两行就自然成了空行啊。

@88250
Copy link
Member

88250 commented Dec 11, 2021

sy-block-edit3 Gif图,过程如上,仅仅是选中之后,按了一下Del,原两行就自然成了空行啊。

这些地方不用 Shift Enter 是如何插入的呢?

image

@EastPearlStar2019
Copy link
Author

sy-block-edit3 Gif图,过程如上,仅仅是选中之后,按了一下Del,原两行就自然成了空行啊。

这些地方不用 Shift Enter 是如何插入的呢?

image

是的。生成新行,是靠Shift+Enter。
但是这个块形成,之后,某天,按上级要求要大幅改动。某两行由领导指出直接要删除,删除后再插入新的内容。

不是选中这两行之后删除,那要怎样?

@EastPearlStar2019
Copy link
Author

好歹,我也是在知乎专门写过一个长文盛赞思源笔记的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

@88250
Copy link
Member

88250 commented Dec 11, 2021

是的。生成新行,是靠Shift+Enter。

好的,我们确认这点就好,后面会找时间看下分块的处理 bug。

感谢帮助思源 🙏

@EastPearlStar2019
Copy link
Author

辛苦了,老大。

@EastPearlStar2019
Copy link
Author

EastPearlStar2019 commented Jan 23, 2022

多谢。
老大叫我改用 logseq,但是我投奔 roam research 双链鼻祖去了。
roam research一直被模仿,但是在至少在双链这一点上,从未被超越
所有模仿 roam research 的双链软件/工具,都在双链预览(双链可在当前位置就地打开)这一点上去打折扣。ob, notion, wolai,remnote, logseq,无一例外,其中有的工具的双链预览其实是缩略,其实不是预览。
所以王者依然是王者,模仿者依然是模仿者。
大陆,大量客户,宁可花重金买 roam research 会员,想方设法fq,都要用 roam research ,原因就是上面这里。

PS:我是在基本预估了sy当前这个issue不可能会在三个月内解决,同时估计{sy的双链在被引用次数超过约10个时预览体验很差,也不可能在近期优化}之后,决定投奔 roam research的

@88250 88250 closed this as completed Mar 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants