CU
1
无论使用的什么编码(序号、时间),我见很多分享都是在文件名上编码:
2026-01-01-xxxx.md
1.1a xxxx.md、1.1.2 xxxx.md
我们知道文件是以“路径+文件名”的形式存在的,那为什么不把编码部分放到路径中呢?
以时间编码为例,可以创建日期文件夹,把笔记放进去,如 2026/01/01/xxxx.md。
如果用这个方式,就只需要建立一次最初的编码前缀,不用像“在文件名上编码”那样,重复写已经写过的前缀编码。例如: 1.1a xxxx.md 和 1.1b xxxx.md 就需要重复写 1.1 这个前缀。
我想知道,相较于“在文件夹上编码”,“在文件名上编码”有什么功能或需求是不可替代的呢?
Ryooo
(Roy)
2
我感觉你这种做法某些情况下更灵活——需要改变文件的分类,那么就把这个文件移动到相应文件夹即可。
唯一可能不好的地方在于使用快速切换查找文件的时候没法从完整编码入手?
单纯方便一些吧,把唯一标识放到条目层级而不是文件夹上,避免创建/检索/引用的时候无法区分同标题的条目,毕竟不是每个人都会创建日期文件夹
CU
4
可以举个例子说明吗?我在 Obsidian 中使用时并没有发现这个问题,或者说你指的是别的笔记软件?
以下是我对“创建/检索/引用”的理解:
创建:
如果要在同一文件夹下创建同名笔记,在修改名字的时候, Obsidian 会有提示 “已有重名文件”,我们是没法创建的。如果实际使用中确实遇到了这种情况,是否可以看作是一种提醒?提醒我们重新考虑重名笔记,能不能进一步区分?
检索:
如果使用“全局搜索”,由于同名文件并不会显示各自的目录,所以在文件名上确实无法区分。但在实际使用中,笔记中的具体内容通常也会被搜索关键字匹配到,我们区分笔记并不仅从文件名上区分,还会从内容上区分。所以我认为能满足检索需求。
如果使用“快速打开”(Command + O),笔记下方是会显示目录的。
引用:
在使用 [[ 引用笔记的时候,会在标题名下显示文件所在目录(根目录为空白)。两个重名笔记是可以区分的。
CU
5
我试了一下,Obsidian 的快速切换查找文件可以匹配目录,但这个匹配算法可能会有影响。
比如 test/a/tst/tes/000.md这个文件:
如果想通过文件名检索,输入000 是可以直接匹配到这个文件的。
但如果想通过笔记的上一级编码 tes 来匹配,却只能匹配到 test 这个顶层目录。
但是又仔细想来,比较符合“由浅入深”层级匹配的思想,先匹配最顶层,再层层深入匹配。
所以如果要使用文件夹来编码,在通过编码检索的时候确实需要注意一下。
开发者做了适配当然没关系呀,但不能要求所有早期插件或者三方工具都预置校验或自定义路径功能,从条目标识上区分显然是最简洁保险的方法。
举个例子,我以前用毛线剪藏这类三方剪藏工具的时候,直接在文件目录创建md文档,默认的动作就是覆盖同名文件,直接区分时间戳明显比写脚本自定义路径更方便保险;自己开发脚本时也是一个逻辑。
检索的问题因人而异,不清楚楼主的工作流是怎样的,我个人没有配置关于自定义路径的自动化脚本,单纯是把编码到标题上更方便模板、检索等工具,例如以前有一些卡片视图的插件(Page Gallery 、Vault Explorer等),都保留了在当前卡片视图下检索文件名的功能。
很简单的一个逻辑,文件名的成本小于路径。前者是与条目强绑定的,不需要在交互时参考或键入路径信息,且大部分插件都会至少保留这项检索功能;后者比较适配特定工具,但需要规划好结构。
结合自己的工作流选择,适合自己的就是最好的。