作为程序员,学习肯定经常的,学到的知识,如果不记下来,过不了多久就忘了,还有,工作中你灵感迸发的好代码,你折腾了很久才实现的好代码,你如果不记录下来,过段时间,你都不记得源文件放哪了,下次还得重新折腾,没错,你需要第二大脑,这就是今天要介绍的主角 Obsidian 笔记。
为什么是它
认真记过笔记的人都知道,笔记种类有很多种,我用过有道,印象,为知,Typora,Notion,语雀,思源,logseq,最终选择了 Obsidian,因为它支持多平台,支持 Markdown,支持代码高亮,支持双链,支持白板和日记,支持语音输入,本地存储,也可以通过插件和网盘等同步,插件丰富,强大的社区支持。只有你想不到的,没有它做不到的,即使做不到,还可以用插件弥补嘛。诚然,这些功能其他笔记软件也可能有,但 Obsidian 有着丰富的插件,是其他笔记所不具备的,即使都不能满足,你还能自己开发,程序员开发个小插件还不是小 Case 嘛。
最重要的是你的文档可以自己掌控,其他很多软件,笔记都是保存到服务器上,而且是自定义格式,安全问题不提,哪天服务器挂了,你辛辛苦苦记录的文档就烟消云散了,而 Obsidian 不用担心这些,你的文档在你自己的电脑上,在你自己的网盘上,你高兴放哪放哪,而且它是开放格式的 Markdown 存储,哪怕 Obsidian 不能用了,你用其他软件也可以照常打开使用嘛。
最后,让我选择它的还有一个原因,可以掌控自己的笔记,其他软件,你用着不爽,想自定义很难,Obsidian 不一样,它从主题样式,到快捷键,到笔记功能,你几乎可以随心所欲的掌控,如果你愿意开发插件,那更是无所不能了,如果你懒,众多的插件也几乎能帮你实现你想要的大多数功能。
甚至她还可以支持把 vscode 的编辑器嵌入到笔记写代码,而且它的代码还可以通过插件直接运行,支持多语言,哈哈哈。
另外,它还能通过插件支持标注,分享,剪藏,发布或生成博客,数据加密,与云盘或服务器同步等。
先睹为快:
软件下载
官方地址:Obsidian - Sharpen your thinking
软件使用
软件安装完成后建议设置“文件与链接”里的附件存放目录,推荐放到指定文件夹,附件文件夹路径是相对于你的笔记仓库的相对路径。
Markdown 语法支持,请参考官方文档:格式化笔记 - Obsidian 中文帮助 - Obsidian Publish
常用插件
核心插件
关系图谱: 类似标签云,只不过是文章的关联关系图,这可是 Obsidian 主打的卖点,方便查看哪些文章是你知识的核心。
出链和入链: 文章被引用和引文的文章列表,也是 obsidian 的卖点。
文档属性: 是 yaml 格式的 frontmatter 信息,是文章的特征描述,有些软件通过这些信息进行文件管理。
文件恢复: 这个功能开启后,会对 Markdown 文档产生快照,可以恢复历史数据。
斜杠命令: 在编辑器中输入 /
即可触发命令面板,方便快捷选择命令。
第三方插件介绍
Obsidian 的第三方插件都是开源的,你不仅可以方便的使用,不满意还可以自己调整。
由于 GitHub 有时访问不稳定,建议使用 Watt Toolkit 进行加速。
Bartender - 首先推荐这个插件,因为这个插件可以对分类进行拖动和排序,非常方便。但这个插件并未发布到插件市场,下载地址:Site Unreachable,由于这个插件在 1.5.8 下面有个 bug,导致左侧分类空白,请到这里下载已解决的安装包 issues。
Remotely Save - 多端同步插件,支持全平台,第三方服务支持 Amazon S3 系列,Dropbox,One Drive,Webdav 等。
Quick Explorer - 快速浏览和导航笔记文件及文件夹结构的插件,类似于面包屑功能。
QuickAdd - 快速创建新笔记或添加内容至现有笔记,简化工作流。
RecentFiles - 显示最近打开过的文件列表,方便快速访问。
Local images - 把远程图片下载到本地等。
Advanced URI - 提供高级 URI 解析和跳转功能,在其他软件中可以打开或编辑 obsidian 里的笔记等,很多插件依赖它,建议安装。
Templater - 创建自定义模板,便于快速新建标准化格式的笔记,支持 js 语法,功能特别强大。
Better Export PDF - 导出的 PDF 带目录,比官方的更好。
Better Word Count - 提供更精确的字数统计,支持选中文本统计字数。
BRAT - 如果你不知道怎样手动安装插件,用这个插件只需要输入 github 的作者和项目名即可下载。
Calendar - 在 Obsidian 中集成日历视图,方便查看和关联时间相关的笔记。
Clear Unused Images - 清理不再被引用的图片资源。
Commander - 这个功能非常强大,可以增加侧边栏和顶部,状态栏,右键菜单等菜单项,还支持宏命令,批量执行命令。
Timeline - 增加时间线视图功能。
TinyPNG Image - 对图片进行压缩优化,减小文件大小。
Webpage HTML Export - 将笔记内容以 HTML 形式导出成网页,然后可以发布到博客,类似于 hexo 等。
Status Bar Pomodoro Timer - 整合番茄钟计时器在状态栏上,帮助用户执行番茄工作法。
Style Settings - 如果你使用别人的主题,使用这个插件可以便捷的开关某些样式。
MySnippets - 如果你有自定义的代码片段,用这个插件方便修改和开关代码片段。
Surfing - 让你的笔记像浏览器一样,可以浏览网页。
SyncFTP - 把你的笔记同步到 ftp 上。
Self-hosted LiveSync - 把你的笔记同步到你自己的服务器上。
Tag Wrangler - 更好地管理和组织标签系统,批量查看和修改标签。
RunJS - 直接在 Obsidian 中运行 JavaScript 代码,可以调用 node 和 obsidian api。
Share as Gist - 把你的代码片段分享到 github Gist。
Just Share Please - 方便分享笔记到 web 平台发给别人分享。
Quail - 一个博客平台,允许你的笔记直接分享到这个笔记平台上,这个平台简洁漂亮,速度快,推荐。
Obsidian shared to Notion - 把你的笔记分享到Notion。
Emoji ToolBar - 添加表情符号工具栏,方便插入表情符号。
Excalidraw - 集成 Excalidraw 绘图工具,支持创建手绘风格流程图等。
ExecuteCode - 在笔记中执行代码片段并展示结果。
File Color - 给你的笔记标题添加颜色,更醒目,方便查看。
File explorer Note count - 显示你的文件夹内的笔记数量。
Custom Frames - 内嵌 webkit 浏览器,可以把一些网站内嵌到笔记内当做笔记自己的面板。
Dataview - 数据统计和可视化,支持 js 和类似 SQL 的语法筛选。
Easy Typing - 自动转换中文和英文标点符号格式,当你在中文输入法下,按两次中文标点或符号变成英文半角格式。
Editing ToolBar - 可视化编辑器工具条。
Kanban - 生成支持看板功能的笔记,工作计划管理很有用。
Hot Reload - 热加载,如果你打算开发插件,很有用,你修改了代码,界面会立即生效。
Hover Editor - 把你的笔记或面板悬浮起来,方便使用。
Html Server - 如果你在公司局域网内,想把笔记分享给同事看,这个插件很有用,它可以在你笔记里启动一个小型 web 服务器,然后把链接发给你同事看,你的改动能实时在页面上看到变化,很方便。
Iconize - 给你的文件夹加上漂亮的图标。
Multi-Column Markdown - 支持多列布局,如果你用于功能对比,用这个插件非常方便,比如我常用这个对比翻译,左边是原文,右边是译文。
Image auto upload Plugin - 它可以配合 PicGo 上传图片到图床。
Image Upload Toolkit - 自动上传图片到云端存储(例如阿里云 OSS 等)。
MantouAI - 通义千问插件,如摘要生成、关键词提取,文章总结,向它提问等。
obsidian echarts - 集成 ECharts 库,实现复杂的数据可视化图表。
Obsidian Memos - 创建和管理备忘录类的小型便签,类似浮墨。
Marp Slides - 将 Markdown 转换为幻灯片演示文稿,只需要用分割线分割你的内容即可。
Meld Encrypt - 把你的笔记加密,通常用于敏感数据,如账号等。
Inline Encrypter - 提供行内加密功能,文本的某一行加密。
Mind Map - 将笔记列表内容转换为思维导图。
Multi Tag - 批量给多个笔记添加多个标签。
Icon ShortCodes - 输入双冒号,快速插入各种图标。
Emo 如果你想把你的图片传到 GitHub 并用配合 jsdelivr 做图床,这个插件很有用。
Auto Link Title - 把链接直接转换为带有标题的链接,标题自动从网站抓取。
Shell commands - 快速执行 shell 脚本,可以调用本地命令打开外部应用或执行脚本等。
Various Complements - 提供了一些功能增强自动填充能力,可以为用户提供更好的使用体验和工作效率。
Reminder - 可以为你的任务增加提醒,并且可以联动的系统,在系统通知区域显示待办提醒。
Pandoc Plguin - 增加将笔记导出各种文件格式的能力例如 DOCX、ePub 和 PDF。此插件不能独立运行,需要配合 Pandoc 额外程序才可以。
Periodic Notes - 创建/管理您的每日、每周、每月、季度以及年度笔记。
Image Converter - 快速缩放图片大小。
Image Insert - 从 Unsplash 等获取图片并插入到笔记中。
Omnisearch - 不仅可以搜索文档,还可以搜索 pdf 和图片,如果你有搜索 pdf 和图片的需求很有用。
Admonition - Obsidian 的块样式,你可以自己定义各种增强块样式,比如警告,笔记,提醒等,由于 Obsidian 0.14 版本内置了 callout 功能,admontion 插件 9(简称 AD 插件) 9.0 以后已经演变成了 callout 辅助工具。
Folder Note - 可以把你的文件夹变成笔记,可以在里面做一些对文件夹的描述或汇总等。
更多插件介绍:Airtable - OB社区插件汇总 - Johnny整理 - 每周更新 - B站 Johnny学
使用心得
关于工作模式
有人喜欢 logseq 的那种工作模式,打开即写,轻记录,obsidian 里也可以开启打开时启动笔记模式,实现 logseq 的打开即写模式,我倒是喜欢目录模式,想要记日记直接快捷键新建日记即可,毕竟我使用的场景,记日记不多,快捷键可以自己设定。
关于写笔记,有人吐槽分类的弊端,每次写作要考虑分类存放,造成负担,我通常用快捷键 ctrl+n 新建笔记,写完了再考虑标题和选择分类,选择分类可以用快捷键也可以用命令等,我是把分类生成一个按钮放到编辑器的顶部,这个功能可以通过 commander 插件实现。这样写作不会被打扰思路,一气呵成,写完再考虑分类,标签什么的,降低分类存放负担。当然你也可以新建个草稿箱,新建文本都放到草稿箱里,我习惯放到根目录,一是明显,强迫自己及时处理,不要积累半成品,二是对有些新建笔记类的插件,剪藏插件等支持良好。
关于分类,有人认为分类没必要,是负担,我深以为然,我认为如果能做到分类和标签通用就好了,就像 WordPress 那样,可以同时选择多个分类,这样类似于标签功能,一个笔记可以属于多个分类,避免纠结分类选择问题。目前还没找到比较好的这方面的插件或者标签能实现类似这种功能,暂且使用目录。我的原则是,你第一眼就想到的,或是第一个想到的它该属于什么分类就放到哪个目录,然后还有其他也沾边的就加标签补充。
关于折腾,有些人喜欢思源那种功能俱全的笔记,避免折腾,沉下心思记笔记(但牺牲了思源笔记存储格式的开放性)。确实是,由于 obsidian 的插件多,很多功能依赖插件实现,就导致刚入门者,不停折腾的现象,这违背了记笔记的初衷。所以建议,不要过于折腾笔记,满足需要即可,核心是记笔记,等实在不好用时,先找第三方插件,都不满足再自己实现。
关于分享
分享笔记我推荐,Quail 插件,Notion 插件、html server 插件和 Just Share Please,分别适应不同的场景,Just Share Please,如果你有服务器也可以自己搭建分享接口。
Web Export HTML,这个插件可以生成完整的博客网站,对 obsidian 自定义语法支持粒度良好,如果你打算生成博客推荐这个插件。
Quail 插件的使用可以参考 obsidian分享文章到Quail博客 - 经验分享 - Obsidian 中文论坛
关于剪藏
关于剪藏插件也比较多,我推荐 obsidian cliper 和 Markdownload 插件(浏览器插件)。
但,我常用的是简悦插件+shell 脚本,这个是我自己写的脚本监控简悦 markdown 下载文件,然后添加到笔记中,简悦导出的格式比较完整,而且有了 shell 脚本我可以自由的选择添加到哪个目录,非常方便。如果你感兴趣,可以查看 Mac下fswatch+shell实现简悦导出markdown到obsidian - 经验分享 - Obsidian 中文论坛。
关于灵感记录
灵感记录通常使用 QuickAdd 插件实现,但这种实现方式,通常只能在 obsidian 笔记内使用,我写了一个通过 utools 和 shell 脚本搭配可以在 obsidian 软件外使用的方式,可以参考 uTools和obsidian联动,高效记录您的灵感闪现 - 经验分享 - Obsidian 中文论坛,建议使用最下面更新的版本。
关于同步
关于同步方案也很多,每种都有自己的优势,我比较了很多种方案,最后选择 RemotelySave+InfiniCloud 的方式,这种方式比较简单而且我认为相对比较安全。详情请查看 RemotelySave+InfiniCloud最简单的多端同步方案实践 - 经验分享 - Obsidian 中文论坛
关于图床
为什么使用图床?一是,用图床节省笔记本地空间和同步空间,加快同步速度。二是,图床对插件和其他编辑软件的支持良好,对导出其他格式也支持良好。
图床方式有很多种,可以参考我上面对于图片类插件的介绍,我理想中的图床方案是,笔记显示远程图片,但本地要留存一份本地图标,必要时,可以批量替换图片地址,让图片正常显示。甚至可以本地和远程相互切换。国内我认为笔记好的图床方案是 jsdelivr+github,但因 github 有时不稳定,我想到了先推送到 gitee 再通过 gitee 推送到 github 的方案,也写了脚本实现,但由于 obsidian 图片缓存的问题,如果链接替换早了,图片会显示不了,即使远程图片上传完毕,所以,必须图片上传完成之后再替换,但由于 gitee+github 中间环节上传图片的结果无法感知,所以暂时搁浅,或许以后考虑直接上传 github 方案,但这种又不稳定,目前上传 github 的插件经常出现替换图片过早问题。
所以我想,不如图片暂存本地,然后用 TinyPNG 插件压缩,必要时,再直接用 gitt 推送到 github,需要时再替换本地图片为远程图片,目前暂时采用这种方式。