思源笔记建议: 脑图模式的意义与脑图优化的建议

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

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

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

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

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 一样, 可以一键折叠所有内容块, 但如果脑图模式如上设想, 那么这个想法就完全不需要了, 因为层次关系的浏览, 某个内容块的迅速定位, 用脑图模式就是最自然的.

  • 思源笔记

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

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

    20156 引用 • 77717 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • siyuan241

    这个软件/网站 是什么呢

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

    1 回复
  • hhailing 1 赞同

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

    1 回复
  • 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 更新了该回帖
  • 查看全部回帖

推荐标签 标签

  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 187 关注
  • LeetCode

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

    209 引用 • 72 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖
  • Latke

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

    70 引用 • 533 回帖 • 735 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 330 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 182 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 6 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    77 引用 • 159 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 140 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 321 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    85 引用 • 122 回帖 • 618 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 20 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • 大数据

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

    89 引用 • 113 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 257 关注
  • etcd

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

    5 引用 • 26 回帖 • 499 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    109 引用 • 54 回帖 • 3 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 65 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 363 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 2 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1234 回帖 • 441 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 396 关注
  • C

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

    83 引用 • 165 回帖 • 5 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    216 引用 • 463 回帖
  • 微服务

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

    96 引用 • 155 回帖 • 1 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 249 关注