谈谈为什么我最终选择使用Obsidian+git管理我的笔记
在对于各个学科的学习中,我进行了一些总结,而且产生了很多想法和灵感,于是这样便需要一款软件来解决我的需求。在跌跌撞撞使用数款笔记软件后,我最终选择了使用Obsidian和git来管理我的笔记文件,下面就来谈谈为什么。
笔记软件中,为什么选择Obsidian
起初,我选择使用手机自带的笔记软件进行笔记,这有许多好处,最大的好处便是方便,不需要下载额外软件,就可以进行笔记的记录但是很快我就发现了一个巨大的问题。
对数学公式的支持性太差了,手机自带的笔记软件毫无疑问是不支持LaTeX的,以至于很多时候我都不得不手写然后拍照,这令我无法忍受,于是我寻求转移战场。
在朋友的推荐下,我尝试了息流,这是一个可多人协作的支持多端同步的笔记软件,对数学公式的支持良好,甚至可以直接输入LaTeX。
一切看起来都很不错,然而,作为商业软件,它的一切都是封闭的,跨平台性极差,不管我想把笔记转入或者是转出都是几乎不可能的。于是我不得不放弃了它。
我突然想到,在电脑上已经使用许久的Markdown格式在手机上是否有支持?在我提问后,有网友告诉我,在电脑端享有盛名的Obsidian其实是有手机端的。
我之前虽然没有使用过黑曜石(,在电脑上使用的md编辑器都是vscode),但也听过它的名声。我抱着试一试的心态下载了他们的手机版。
不试不知道,一试吓一跳。黑曜石的手机端和电脑上的操作逻辑近乎相同——选择仓库所在的文件夹,然后在其中创建文件进行写作。与其说黑曜石是笔记软件,它更像一款md编辑器,文件都是明文保存在我指定的路径的。
并且在电脑的支持的实时预览,源码模式,LaTeX支持,文档metadata,甚至是设置功能都一样不少。
于是我知道,就是它了。
同步软件中,最后为什么选择了git
在回答上面的问题之前,我想先说说,为什么不一开始就选择git。
在电脑端,用git管理我们的代码或者说文本文件实在太稀松平常了,就好像口渴了就会去找杯子来装水喝一样自然。
但是在手机端我们就没有这么幸运了,没有谁会在手机上写代码,于是乎Linux,Windows,Unix-like系统上都有的git,在手机上我竟然不知道有没有客户端。
而且由于手机和电脑之间现在都使用的是相同标准的格式,曾经在电脑上写过的文件现在可以直接和手机互通了,因此这个管理软件应该还要有多端同步功能。
我首先看到的是黑曜石自带的Obsidian Sync,我考察了一下,发现价格不是太美丽,遂放弃。
紧接着,我想到使用网盘来同步文件夹,比如说最具代表性的坚果云文件夹同步。我上网查了一下,手机上如果想要同步文件夹,需要安装一些软件还要在坚果云里开放授权码等等杂七杂八的选项,遂放弃。
坚果云还有一个硬伤,那就是每个月只有各1G的上传下载流量,这在平时用来同步一些config文件自然不在话下,可是笔记里难免会有一些图片类的二进制文件,这便难说了。
于是乎在我坚持不懈的搜索下syncthing进入了我的视野,这是一款开源的通过局域网进行多端同步的工具,使用它在局域网内同样可以进行无感同步。
由于我在使用电脑时一定会和手机连接到同一个局域网(要么使用WiFi,要么使用热点),因此可以直接说是全场景无感同步。我甚至还用它把手机里的陈年老涩图都给同步到了电脑上。
到这里我就感觉到我已经可以停止了,我已经找到了最适合我的笔记管理办法。
笔记管理大厦已经落成,后面要做的就只有记笔记而已了。然而在大厦之上,尚且还飘着两朵乌云——版本控制和忽略文件。
没错,版本控制!黑曜石自己是不带版本控制的,syncthing倒是有版本控制,它的版本控制就是在替换和修改文件的时候直接保留源文件到另一个文件夹。这样我就不能查看源版本,那我还怎么release我的笔记?
syncthing不能忽略文件,都会自动把.obsidian文件夹同步,导致我的电脑和手机只能使用一套配置文件。我想在电脑上看大一点的字体都不行。
git,早知道还是git。这就开始检索关键词“安卓+git”,嘿您猜怎么着?全是和我有一样需求的,“怎么用git在手机和电脑Obsidian之间同步文件”。
最终还是找到了,开源安卓git客户端mgit。GitHub,Gitee全部启动启动启动。最后还是用了git。
最后再总结一下我找到的五种解决方案的优缺点吧。
解决方案 | 方便性 | 跨平台 | 数学公式支持 | 多端同步 | 无感同步 | 版本控制 |
---|---|---|---|---|---|---|
手机自带笔记软件 | ✓ | x | x | ✓ | ✓ | x |
息流 | ✓ | x | ✓ | ✓ | ✓ | x |
Obsidian+坚果云 | x | ✓ | ✓ | ✓ | ✓ | x |
Obsidian+syncthing | ✓ | ✓ | ✓ | ✓ | ✓ | x |
Obsidian+git | ✓ | ✓ | ✓ | ✓ | x | ✓ |