此篇需结合官方的帮助文档来阅读。是对官方帮助文档中的部分概念或功能进行的详细再解读。可以更深入了思源笔记的各种设计,益于更好的使用思源笔记。
此文转自:Mind,原文地址:思源笔记基本功能详解 · 语雀 (yuque.com)。
思源笔记难入门历来已久,官方文档名词概念很多,不少编辑操作又不同于其他文本编辑/双链笔记软件,所以对很多新手来说很难快速理解,更别说能用好用久,成为长期用户。为便于新手快速入坑,这篇指南做了一下尝试,并且做了一个相应的极简主题,软件界面也尝试通过修改语言包的部分词汇,以便于更好的理解使用思源笔记。
极简主题介绍:
https://ld246.com/article/1644409849918
github:
https://github.com/mindstudy/siyuan-themes-concise-dark
https://github.com/mindstudy/siyuan-themes-concise-light
语言包修改的是繁体中文包 zh_CHT.json。concise 极简主题下载好之后,可以将附带的 zh_CHT.json 覆盖思源笔记的繁体语言包。如果繁体中文包不想覆盖,可复制粘贴到不用的语言包,如法语语言包 fr_FR.json。完全不想用语言包也可以,自己对照界面和下面指南中的图片理解即可。极简主题也可在这里下载: https://ld246.com/article/1644409849918
Mac 用户覆盖语言包方法: Siyuan/conf/appearance/langs 下的同名文件,以及 /Applications/SiYuan.app/Contents/Resources/appearance/langs 下的同名文件。覆盖之后删除 /Users/你的用户名/Library/Application Support/SiYuan-Electron/Cache 目录下的所有缓存文件,以便语言包快速生效。
Win 和其他系统用户覆盖语言包可参照上述方法。
结构
库本页块
首先了解一下思源笔记的笔记结构,有点类似与活页本,视觉上简单来说有“本、页、块”三级容器结构。本、页结构是以树状层级的形式,在左边栏的结构面板(文档树)中显示。(注:“页”的官方提法为“文档”,词义范围太广不太利于结构理解)
块就是编辑窗口一个页面中的各种类似于段落的内容,所以也叫内容块。一个硬回车即可生成一个块。Shift+Enter 可以生成软回车换行,但上下行仍然属于一个块。
所有的笔记本汇总为笔记库,在界面显示上,笔记库=打开的笔记本+关闭的笔记本。
笔记库底层文件 data 根目录在安装思源笔记时自动创建,底层文件在电脑上的目录位置可查看设置>关于>工作空间目录。可以在“我的电脑”里对工作空间目录改名,或直接新建一个目录,然后在思源笔记的设置里更改工作空间目录。笔记库底层文件结构是这样的:
页名级次
结构面板中,A 页 和 B 页同一级次,可以把 A 页拖动到 B 页上,是 A 在视觉上成为 B 下级页。
如果要让 A 页恢复和 B 页同一级次,可以把 A 页拖动到 B 页的上一级页。上一级的层级如果是“本”,就往该“本”上拖。
页名排序
笔记本中的页目前无法通过拖动实现排序,思源笔记专门有笔记页排序功能。但需要注意的是,这个排序是对所有打开的“本”中的笔记页排序的,多个笔记本打开时,不能针对某一笔记本单独排序。(需要单一笔记本排序的老铁可前往官方论坛呼吁)
页块互转
结构面板中的页可以往编辑窗口某个块上拖放,转换成层级标题。
页面内的层级标题也可以往结构面板中的笔记本名称或某一笔记页上拖放,组成树状层级的一部分。大胆的尝试一下吧。
大纲层级
大纲面板显示当前页的标题级次结构,和其他 Markdown 笔记软件的大纲显示类似。(极简主题隐藏了 H1-H6 标题前图标和次级标题的计数显示。)另外单独的大纲快捷键是 Alt + O。
导入导出
笔记页
笔记页可以导入,可点击某一笔记本名称、某一笔记页名称的右侧三点图标(更多),选择导入。导入的位置就是你选择的“本”或“页”的下一级。导入只支持 Markdown 文件,或有 Markdown 文件的文件夹。
这里需要注意一下大文档的导入问题。如果导入的单个 Markdown 文件很长,建议导入前先用文本工具按章节拆分成若干部分。思源笔记现在无法在导入 md 文件时自动按标题拆分文档,编辑页面也无法将一个长页面中的若干层级标题自动转换为若干小的笔记页。大文档长文档涉及文字编辑和块操作的效率问题,详见本文的“编辑——全选操作”以及“编辑——块操作”部分。(可以用 Obsidian + 它的 Note Refactor 插件快速拆分)
笔记页导出也比较方便。不过导出为 Markdown 时,形式是通过浏览器下载一个 zip 包,效率上比较不便。这其中有针对包含图片文档的考虑。
笔记本
单个笔记本可以导出为 Markdown 压缩包。但是思源笔记不能再次导入这个 Markdown 压缩包,解压后导入,也不会保留原有的双链关系。因为导出时,双链关系就被转换为 Markdown 脚注一类的语法,如果再重新导入,无法重现导出前的双链关系。
如果一定要保留所有思源笔记特有双链关系而进行“导出”,比如想将某个笔记本单独迁移到另一台电脑,或者分享给其他使用思源笔记的朋友,有方法,但比较麻烦。方法是:在某个笔记本上右键,在弹出菜单中选择“打开文件位置”/“定位”,将文件所在目录拷贝粘贴到新的工作空间目录。但问题是,如果该笔记本里面的内容带有图片,就需要拷贝粘贴 assets 目录内的相应图片。
笔记库
如果想将思源的所有笔记整体迁移到另一台电脑或者给用思源笔记的朋友,可以打包思源笔记的 data 目录,拷贝粘贴过去。思源笔记的目录位置可查看设置>关于>工作空间目录。
如果要云备份、同步笔记库,需要付费开会员。
编辑
恢复撤销
首先必须知道的是删除笔记页,如果想恢复,是在结构面板(文档树)中某个笔记本上右键(或点击右侧...符号),弹出菜单,上面最后一行有一个“历史”选项,进入后在某个日期中找到被删的笔记页,点恢复图标即可恢复。
编辑页面想要撤销是 Cmd+z。但有时页面关闭了再打开,想通过 Cmd+z 撤销肯定不行,这时仍然可以通过前面介绍的进入查看历史版本的方法恢复想要的数据。如果查看历史版本也找不到,那就是没有了。
但如果是删除了某个笔记本,很遗憾无法通过“历史”找回。思源笔记没有回收站,切记切记不要轻易删除某个笔记本。
思源笔记重新启动后回到上次编辑的页顶端,而不是回到上次编辑的页内具体位置。
全选操作
思源笔记的全选与其他文本编辑软件不一样,这是很多新手困惑的地方。
首先 Cmd+A 不是全选当前页所有内容。思源笔记为了加载超长内容不卡顿,只动态加载当前屏幕附近的内容。如果笔记页内容不长,按两次 Cmd+A 是可以全选所有内容。但如果向下滚动页面,还有内容没有选上,就需要继续按 Cmd+A。还可以在开始的地方单击,滚动页面以后在结束的地方按住 Shift 单击。
如果是单页超长文档,这种连续滚动、多次 Cmd+A 的动作没有太大实用价值,所以需要考虑的是如何拆分、缩减当前页的长度。
文字编辑
思源笔记支持 Markdown 所见即所得编辑。如果不熟悉 Markdown 语法,对于行内文字(行内元素)也提供了丰富的编辑方式,选中文字即出现浮动工具条,方便设置文字格式。
下图是 Concise 极简主题显示的行内文字效果,其中高亮文本作成了“挖空”效果,鼠标悬浮时显示,便于对学习材料的记忆。如果不需要挖空效果,可以通过《思源笔记外观修改详解》介绍的方法修改。
内容拖入
图片可以直接从资源管理器拖入思源笔记编辑页面后显示。
其他文件一般情况下页可以直接从资源管理器拖入编辑页面,显示为外部链接。
但是,其他文本编辑器、浏览器中的文字目前无法拖入思源笔记编辑页面,只能拷贝粘贴过来。这一点不同于其他文本编辑/笔记软件。
块操作
思源笔记提供丰富的块元素(层级标题、段落、列表、表格等),详见参考官方文档关于内容块类型的描述。这里重点关注以下和块相关的一些操作。
鼠标划过某个块,左侧会出现当前块的图标,在图标上按鼠标右键,有丰富的操作。
每个内容块都可以以聚焦方式单独编辑,有利于专注。
页面内的层级标题 H1-H6 可以折叠,无序列表/有序列表的上级可以折叠。
块之间可以上下拖动,交换顺序。注意由于层级标题和它下面所属的段落是相互独立的块,所以如果想连同标题和所属段落一起拖动,就需要先把该层级标题折叠,然后再拖动到想要的位置。
如果是单页超长文档,就会有块移动的效率问题,所以需要考虑的是如何拆分、缩减当前页的长度。
分屏编辑
思源笔记可以分屏编辑,便于对比、批注、链接两个文档,非常有用。
中英空格
思源笔记可以给当前页的中文和英文之间加入空格,这也是个很实用的小功能,可以带来更好的阅读体验。方法是点击某个页面的右上角(页标题下)的“...”,进入后选择“中西文之间插入空格”。实际上使用这个功能,中文和半角数字之间也会插入空格。另外要注意的是,这个功能只对当前页面有效,不能对其他页面生效。
双链
如果不用双向链接,思源笔记就是一个普通的文档型笔记软件。双链由 Roam Research 创新并发扬光大,可以帮助你参考引用不同位置的笔记内容,还可以起到收集、汇总、定位、整理、辅助写作等作用。如何用好就看你如何发挥。
但是思源笔记里关于双向链接的概念很多,相比其他双向链接软件操作又显得复杂。小白看了之后云里雾里,很难明白个所以然。
词汇列表
其实双向链接很好理解,涉及的对象就是文字 A 和内容块 B,动作行为就是 A 链接到 B。从 B 那边看, A 就是反向链接。
但是在思源笔记里,因为观察角度不同,A 和 B 会出现很多种叫法。比如下表中的 A,与它在同一列的有很多名词,其实指的都是一个东西。与 B 在同一列的也有很多名词,其实指的也是一个东西。下面来扫清云雾:
视角 |
文字 A |
内容块 B |
方向 |
反向链接/反链(站在内容块 B 的角度) |
正向链接/正链(站在文字 A 的角度) |
起止 |
链接起点/始发链接 |
链接终点/目标链接 |
收发 |
发送点 |
收集点 |
出入 |
出链 |
入链 |
定位/锚定 |
用来定位的文字/锚文字/锚文本 |
被定位/锚定的块 |
引用(名词) |
引用某个块的文字 |
被引用的块/引用块/引用目标 |
引用(动词) |
用锚文字建立链接/引用/块引用/块引 |
块被引用 |
链接实质 |
当前页的锚文字 |
内容块的ID |
系统自动提示引用 |
当前页的虚拟引用(虚拟锚文字) |
被其他相同锚文字引用的块 |
反向链接面板 |
反向链接面板中的锚文字 |
当前页被反向链接中锚文字引用的块 |
提示面板 |
提及(潜在反向链接)面板中的锚文字 |
当前页被其他相同锚文字引用的块 |
每日笔记工作流 |
当前页传递型/关联型链接 |
被引用的页 |
概念详解
锚文本:也称锚文字,具体表现就是文字 A,比如下图中的“提及”。极简主题用较紧密的点下划线表示,与虚拟引用下划线以及Markdown 的下划线样式有区别。
引用块:站在链接起点文字 A 的角度看,所引用的内容块 B 就是引用块(目标链接/正向链接)
反向链接:站在目标链接/引用块/内容块 B 的角度看,A 就是反向链接。
反向链接/提及面板:
反向链接不仅可以在编辑页面用鼠标划过反链数字来显示,打开反向链接面板时,也会显示相应的内容。在自由式写作时,反向链接面板起内容收集作用,可以将其中的内容拖到编辑窗口。但是,反链面板有时反链总数与页面分项合计数对不上。另外看不出反链面板的内容具体在什么位置,点击面板中其他页的反链会跳转到其他页的锚文本位置,而不是当前页相应的引用块。除非点击的是当前页自己的反链,才会跳转到当前页相应的引用块。
提及:就是系统自动显示的潜在反向链接,可以鼠标划过提及内容的右侧三点,出现 🔗 符号,点击即可生成一个反向链接。注意:没有被引用过的当前页,提及面板不会有显示。而且提及面板只显示与当前页名称/标题有关的潜在反链。当前页里面如果有其他被引用的块,提及面板不显示。这个和其他双链软件有不同。
虚拟引用:就是系统自动显示的始发链接/引用(此功能需要在设置-编辑器里开启)。极简主题使用虚下划线来表示。鼠标划过虚拟链接,也会出现浮窗。由于开启这个功能后,可能会显示很多虚拟引用,实用性并不是很大,所以并不建议开启。
双链操作
通过前面的内容理解了双链的具体形式后,简单的说就是文字 A(锚文本) 链接到块 B。
思源笔记的双链有自己的独特之处。由于引用的是块ID,思源笔记的锚文字可以任意,而因为引用对象唯一,有引用块 ID 就可以直接链接。所以理论上双链两端的 A 和 B 在文字形式上都可以随意更改,不会影响双链存在,实现了网页超链接一样灵活的锚文字形式。同时,如果建立双链时不去改锚文字,那么锚文字就会随内容块B的变化而变化。
软件对比
但是思源笔记的双链操作和其他双链笔记软件的操作很大区别,很多用户不适应思源也是因为如此。下面具体比较一下:
思源笔记 |
Roam Research |
|
引用的实体 |
块ID (形式是整个块) |
页名/页标题 |
输入式建立双链 |
输入 [[ 或者【【+文字,搜索所有 |
输入[[+文字,搜索页名,选择 |
选中文字建立双链 |
Alt+[ 或在弹出工具条选双链图标, |
不能,但可以使用第三方软件如 |
手动给文字增加 [[ ]] |
不能建立双链页面 |
自动给加 [[ ]] 的文字建立双链 |
被引用页/块的名称改变 |
有自定义的锚文本时,反向链接(锚文本)保持不变;没有则自动改变 |
反向链接(锚文本)自动改变 |
锚文本变为非空值 |
目标链接/引用块名不变 |
目标链接/引用块名指向更名后的新页面 |
页引用 |
有 |
有 |
块引用 |
有 |
无 |
嵌入式引用 |
有 |
有,官方称之为“块引用” |
显示反链 |
当前页显示相关块的反链数字,反链面板显示反链所在页和节略的反链内容 |
当前页只显示与页标题相关的反链和潜在反链 |
提示潜在反链/提及 |
提及面板只显示与当前页标题 |
当前页只显示与页标题相关潜在反链 |
显示出链 |
无 |
无(Obsidian有) |
汇总被引用的页 |
无 |
有 |
页名称是否重复 |
由于引用只看块id,页名称可以重复,故双链建议选择时可能误判。id不同页名相同,产生页面合并问题。 |
页名称唯一 |
操作说明
输入 [[ 或者【【时,思源笔记会给出十个笔记页名称/层级标题名称的双链引用块建议,可能并不是你想要的引用块,那么继续输入文字,系统会搜索输入的文字,搜索结果成为双链引用块建议,层级标题名称会默认会排在前面。鼠标悬浮在块图标上可以预览。选择你想要的标题,即可生成一个双链。
选中文字再点双链图标,系统会搜索选中文字,搜索结果成为双链引用块建议,操作同上。
注意这种选择方式建立的链接/引用,其锚文本是自动跟随引用块的,这时用右键看链接/引用属性,锚文本是空的。引用块内容变化,锚文本跟着变化。(引用块内容的优先级是命名、块内容)。
如果选了整个内容块(比如一个段落)作为引用对象,可能整个段落都会作为锚文本,具体长度由"设置>块引动态锚文本最大长度"决定,默认为64个字符。所以这种情况最好事先给要引用的内容块“命名”。方法是:光标不在该内容块时,可以直接鼠标在该内容块上右键,单击弹出菜单中的“属性”进入设置。光标在该内容块时,鼠标移到左上角块图标点右键,单击弹出菜单中的“属性”进入设置。
其他一些注意事项:
- 双链不支持行内文字链接到行内文字(所有双链笔记软件都不支持,html 网页支持);
- 可以跨笔记本建立双链(注意另一个笔记本关闭时,鼠标浮动将无法取得内容);
- 选中文字建立双链,文字 A (锚文本)默认为选中文字,不随引用块的变化而变化;
- 文字 A (锚文本)可链接/引用到页、块,包括链接到自身所在的页、块;
- 文字 A (锚文本)可以右键修改,只要不改为空白,就不随引用块的变化而变化;
- 文字 A (锚文本)删除引用后需 F5 刷新,引用块右侧的数字才会减少或消失。
- 可以在某个块的左侧图标右键单击,选择复制>复制该块为引用块,然后粘贴到你想要的某个页面位。如果被复制的块是段落,粘贴后会很长,编辑为所需的简短锚文本即可。
类型过滤
双链建议弹窗默认很多,是因为双链建议与系统搜索共用过滤选项,只要块类型在搜索时开启,就会出现在双链建议中。可以在设置>搜索>类型里选择要过滤的块。如果只启用“标题”和“笔记页”(文档),在建立双链时就会清爽很多。
那么需要搜索所有块内容怎么办,还好在搜索面板也有过滤选项,不过每次都要重新打开。如何取舍,看你对双链建议结果的接受度,以及搜索和双链哪个用的多。理想的办法是官方把双链过滤和搜索过滤分开,这个看官方是否愿意分开设置了。
嵌入引用
思源笔记的嵌入块引用等于 Roam Research 的“块引用”,其特点都是被引用的块 B 发生了什么变化,在引用位置 A 也发生同步变化。
建立嵌入块的方法:在某个块的左侧图标右键单击,选择复制>复制该块为嵌入块,然后粘贴到你想要的某个页面位。可以分屏观察一下,编辑被引用块中的内容,嵌入块的内容也会跟着实时刷新。
小结
结构、编辑、双链是思源笔记的基础,理解了这些内容,接受思源笔记的特点/缺点,就可以愉快地使用思源笔记了。思源笔记还有 SQL 查询、挂件、自定义主题等进阶内容,留待日后讨论。
谢谢阅读。
补充更新和删除记录的恢复:
但如果是删除了某个笔记本,很遗憾无法通过“历史”找回。思源笔记没有回收站,切记切记不要轻易删除某个笔记本。
感谢楼主的详细讲解,这里补充一下:
笔记本和文档的更新和删除记录可以在 /.siyuan/history 文件夹下找到。其中data目录下的 .siyuan 文件夹存放的是笔记本的增删记录,笔记本目录下 .siyuan 文件夹存放的是笔记本内文档的增删记录。
如果不小心误删了一个文档,可以在history下找到删除的文档(有当天日期作为标识),拖回原来的位置并在思源中重建索引,就可以恢复了。
专题:思源笔记教程
- 思源笔记安卓手机版数据备份
- 小白思源笔记docker部署——不如想象中美好
- 思源笔记基本功能详解-转
- 思源笔记伺服功能使用教程
- 思源笔记的横排是如何实现的?
- 思源笔记的SQL该怎么用?
- 思源笔记有没有随机回顾的功能
- 小白教程:Centos安装思源笔记docker版及反向代理
- 思源笔记生成静态博客:OceanPress
- 思源笔记的思维导图 - 笔记时间戳 - 手绘功能
- 思源笔记导入epub
- 思源笔记的模板中如何制作彩色字体
- 思源笔记有没有办法在文档内添加TOC(内容目录)
- 思源笔记添加行内备注 - 快速选择连续的块 - 命名和别名有什么不同
- 思源笔记导入电子书最优方案 - NeatConverter转换各种格式为PDF
- 思源笔记挂件如何使用
- 思源笔记移动App如何导出及怎么用pandoc导出Word(Doc)
- 思源笔记安卓App如何使用主题
- 手机思源笔记同步
- 思源笔记 2.0 收集箱功能使用方式
- 思源笔记主题 Dark+的多窗口功能
- 思源笔记使用思维导图之 jsMind挂件
- 思源笔记双链使用详解
- 思源笔记自动生成文档目录的方法汇总
- 思源笔记的注释功能实现(最新版本已有了批注功能)