脑图模式的意义与脑图优化的建议

本贴最后更新于 1417 天前,其中的信息可能已经时移世改

其实我一直觉得脑图有非常重要的意义.

一方面是长文档, 脑图模式组织块的层次关系远比平文本直观和方便.

另一方面, 当所记的没有清晰的逻辑关系, 比如读别人的代码, 经常是可能读了这个函数, 做了点笔记, 又需要跳转到读另一个函数, 跳转关系太多. 用平文本书写感到非常难受. 用脑图的话, 很方便, 看另一个函数再增加一个块就行了, 以这个函数的函数名为块名, 之后想对这个函数再添加笔记很直观, 点进入添加就行了. 比如:

image.png

这些在我开始看代码的时候, 不是这样组织的, 但有脑图, 可以很方便重新组织. 而且想在哪里添加就在哪里添加.

但把脑图和 markdown 结合得比较好的, 我没发现. 比如我一直用的 ithoughts, 它能打开 markdown, 其实是把 markdown 转换成了它自己的格式, 而不是原地编辑原来的 markdown. ithoughts 也可以导出为 markdown, 如果它有命令行工具支持这件事, 可以批量转换, 我肯定很乐意用, 但目前是不支持, 估计以后也很难指望支持.

有一些插件, 能将 markdown 用脑图展示, 但也不是编辑. 顶多算是有点视觉体验, 完全达不到组织文档的作用.

思源笔记有脑图模式, 但我感觉目前还很不实用. 我来总结总结它离实用差在哪里:

最重要的, 什么是一个节点, 我觉得不该是段落块, 而应该是标题块. 看下图, 这就是以段落块为节点的后果.

image.png

如图, 这仅仅是文档的一小部分, 但是满屏都是这些段落节点, 毫无意义, 一看到就想让人赶紧退出脑图模式.

我感觉能看到的节点有应该是标题块, 我觉得所有的内容都应该在某个标题块. 这样节点数量就会小得多.

这是根本上的分歧. 然后在这个以标题块为节点的前提下, 实现节点的创建, 点击创建游离的新节点, tab(子节点), shift+tab(创建父节点), enter 这些快捷键. 就这 4 个, 差不多就是创建节点需要的全部快捷键. 再次说, 都是标题块. 游离块默认最小标题等级.

如果真是所有的节点都是标题块节点, 那么段落内容放哪里呢? 我觉得点击节点的时候, 浮现显示就很好了(就像现在点击段落节点会浮现段落的全部内容那样). 本来, 脑图模式的优势也不是对一个段落细节书写, 而是整体逻辑关系的组织.

与文本模式很平滑地过渡. 我觉得什么是平滑, 还是在, 节点只有标题块, 段落内容只在点击节点的时候显示这个前提下描述. 比如 option+click, 就进入了这个段的文本模式(就是平常的那种显示模式). 再一个快捷键, 就来到了脑图模式, 并且 focus 在当前光标所在的段落块.

我觉得不需要其它的, 就这几点, 脑图模式的体验和实用意义都会完全不同.

我觉得对长文档的组织能力, 才体现了工具的价值, 否则为何我不用记事本之类的写呢.. 有人可能说, 还有双链呢. 但是说实话, 双链就用普通的文本编辑器也可以达到类似的效果, 比如 vscode, 我大可以在这个需要链接的地方加上一个随机字符串, 需要引用的时候, 引用这个随机字符串, 再比如 vim 本来就支持 tag 语法(虽然需要不断用命令行更新 tag 文件). 方便性是差了些, 但本来也不是那么高频. 但平滑的脑图操作, 立即就不一样了, 这是文本编辑器做不到的.

再次总结我觉得脑图应该是啥样:

  1. 只有标题块, 内容点击浮现显示
  2. 支持自由创建节点(还是标题块), 支持 tab, shift tab, enter, click 四种方式创建
  3. 能与文本模式无缝切换, 无缝体现在 focus 和光标的位置.

p.s. 我之前建议像 vim 一样, 可以一键折叠所有内容块, 但如果脑图模式如上设想, 那么这个想法就完全不需要了, 因为层次关系的浏览, 某个内容块的迅速定位, 用脑图模式就是最自然的.

  • 思源笔记

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

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

    24603 引用 • 100862 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 谢谢,和我们想到一块儿了!脑图会在后面的版本进行重制,使用标题块作为节点 Issue #2024 · siyuan-note/siyuan

    3 回复
  • 想法很棒。不过还有一个问题没解决:如果只以标题为结点,如何处理作为大纲存在的列表块?
    图片.png

  • EndlessErrors 1 4 赞同

    尝试对楼主的方案做一些改进,权当抛砖引玉:

    列表与标题的连贯

    假如列表是标题块的唯一子块,直接顺延即可(如图)。(建议大纲 Dock 栏也如此处理)

    image.png

    而且如果出现在脑图模式下添加了 6 级以上的子结点,由于文档模式没有这么高级的标题,自动转化为列表。

    image.png

    事实上,一些脑图软件导出 Markdown 就是这么做的(XMind 导出的甚至不用 H3 以上的标题)图片.png

    对于列表不是标题块的唯一子块的情况,后续再细说。

    不仅仅显示标题块,同时将非标题内容缩小后渲染成一个节点

    以我实际做的一篇笔记为例:

    左边为笔记,右边是我用 XMind 做的理想的脑图表现形式示意图。

    标题块正常显示,而 每两个高低级标题块之间的内容 以及 最低级标题块的子内容 则整体作为一个节点渲染在对应位置(就好像这个节点本身是一个嵌入块),渲染时字体大小相对标题块更小,而且节点大小不能过大(高度、宽度控制在合适范围内,通过滚动条上下查看,允许用户拖拽边界修改大小)

    image.png

    单从外观上看,有点类似 MarginNote 3,它的每个结点也是有比较多的内容的:image.png

    假如按楼主所说,只显示标题块,那脑图和大纲 Dock 栏的功能有多少差别呢? 不过是形式不同而已。

    脑图模式应该是和线性编辑模式(所见即所得模式)并列,作为编辑文档的模式存在的。有具体看到每个细节的能力的(但有能力做一件事情不代表就一定要做,根据实际情况可以一键把非标题内容给隐藏/折叠起来,就好像关系图的筛选功能一样)。如果按这种方法来显示非标题内容,非标题节点的个数在最坏的情况是和标题节点的个数一样多(我举的例子即为最坏情况:每两个高低级标题块之间都有内容),相比 v1.8 现有的方案,仍然能够大大精简脑图。脑图在保留了查看全文的能力下,又能清晰显示出文章的骨架架构。

    为什么需要保留查看全文能力?还涉及一个容错度或者说自由度的问题:

    由于线性笔记的结构性不如大纲类(但好处是线性笔记自由度更高),有很多内容未必就放在适当的位置,以我举的例子来说,最严谨的组织形式如下,橙色的是修改过的地方,如果显示为脑图也会很清晰:

    image.png

    但是我并没有那么多时间来一板一眼地把笔记组织起来,我还得上课还有作业,不可能一直花大量时间完善笔记,我觉得自己原来做的笔记结构已经很不错了,至少在线性编辑模式看来没什么问题;但是这结构却达不到脑图的要求,如果只显示标题,很多内容都丢失了,image.png但如果脑图能显示全部内容,就多出来了容错空间,我不需要把笔记做的天衣无缝了。

    线性笔记的优点就是相对灵活的组织形式,非要按照大纲笔记一样以严格的标准来显示无异于削足适履

    此外,不仅能够做到楼主说的脑图与线性模式无缝切换,甚至在脑图模式有可能直接做到无缝衔接,修改内容只要在非标题内容节点上直接修改(就像从悬浮窗修改其它块一样)。

    非标题内容中重点的手动提取

    假如图中的列表是重点,是我希望出现在脑图里的。

    image.png

    那么我可以通过下面的步骤手动把这个块将这个块显示到脑图里,放到非标题节点之后作为其子结点(同时由于它是列表,会自动展开)。(当然也可以反过来把这个块放回去不在脑图中显示)

    image.png

    有多个块放到非标题节点后,顺序是根据线性笔记里固有的顺序来的,而且在脑图中不能通过移动节点来调换这个顺序,除非修改线性笔记的顺序

    image.png

    在物理存储结构上,非标题节点中的一个块是否提出是依据这个块的内容(重要性、与主题的相关度)决定的,所以是块的本身的属性,与它所在的非标题节点无关。假如把这个块移动到另一个非标题区域中,它还是会在脑图中被单独提出来(所谓“是金子在哪儿都能发光”)

    我只管胡思乱想,可行性就不知道了。。。。😳

    但是我始终觉得把非标题内容一刀砍了是不是太简单粗暴了。。。如果我说的方案花的时间成本很大,暂时实现不了,那我倒是愿意等等的(就像在等挂件、插件、PDF 标注一样)。

    2 操作
    EndlessErrors 在 2021-05-01 14:55:29 更新了该回帖
    EndlessErrors 在 2021-05-01 13:40:37 更新了该回帖
  • lnid123 1

    其实现在几乎所有双链笔记的脑图还有一个大的问题:

    1。 都是从主到次的树型,但在实际中思维导图的方式不完全是这种解析式的,还有归纳式的,即先列出各种现象,再根据各种现象来归纳,并不是我们所说的线性的,而是发散型的,这在脑图的制作上会更加的灵活,脑图应该包容各种各样的,而不是只有 markdown 的标题块才可以归纳为脑图

    2。不能灵活在脑图上自由添加额外的信息,现在就只有 obsidian 中有一个插件在着手,好像叫做 juggl,可以保存添加备注各种各样的脑图

    3。脑图的各个子单元在图谱中修改,不会改动原文件。实际中,很多联系和观点是在脑图中有灵感时才迸发出来的,如添加双向或单向箭头,就可以在原文件中自动添加相关双链的操作

    希望思源笔记可以在脑图的发展上更加灵活和有前瞻性

  • 31061650 via macOS

    期待新脑图功能的上线

  • 这个笔记软件的白板模式看起来还挺有趣的

    1 回复
  • qifengle1998

    脑图、关系图都是白板的子集

  • 导图纳入短期计划了,很高兴,期待多多参考下 Dark+ 的导图,每个节点的大小自己控制,对图形的纳入也很自然

    1 回复
  • wslrj

    dark+ 怎么控制节点大小。。

    1 回复
  • Shift+enter

    1 回复
  • wslrj

    这是换行吧。。。

  • woilifei

    参考 xmind7 的备注功能,具有完整的文本编辑白板功能,鼠标放放上去可以自动弹出,也可以手动点击弹出或隐藏

  • siyuan241

    这个软件/网站 是什么呢

  • D 大,这个公司做的白班很牛,可以参考下功能 https://boardmix.cn/

    1 回复
  • 参考不了……没有那么多资源投入开发,这个公司融资了上亿人民币……

  • 能否支持将节点与其子节点展示的模式变为导图的模式
    类似这样 https://zhuanlan.zhihu.com/p/5282521430

  • 能否支持将节点与其子节点展示的模式变为导图的模式
    类似这样 https://zhuanlan.zhihu.com/p/5282521430

请输入回帖内容 ...

推荐标签 标签

  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 364 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    335 引用 • 324 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    493 引用 • 928 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 83 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • 区块链

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

    92 引用 • 752 回帖 • 1 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 1 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 1 关注
  • ZooKeeper

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

    59 引用 • 29 回帖 • 1 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 252 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    498 引用 • 1395 回帖 • 258 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • Access
    1 引用 • 3 回帖 • 5 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 137 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 98 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 803 关注
  • 996
    13 引用 • 200 回帖 • 3 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 603 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 171 关注
  • Spark

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

    74 引用 • 46 回帖 • 569 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 3 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 631 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 548 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖