在VS Code实现卡片和笔记
卡片和笔记
以往当我们写笔记或者写作的时候都是由上而下。也就是先有标题,才有内容。而且笔记和笔记之间没有联系,只能通过分类或者标签去分门别类。
卡片和笔记则是由下而上,他分成以下三种类型:
- 闪念笔记: 简单来说,就是一张小卡片。记录突然间的一些想法或者知识点。尽量做到一张卡片一个知识点。
- 文献笔记: 可以想象成是一张A4纸。可以通过多个卡片或者额外加入文字形成。记录着阅读书本、观看视频等等的读后感,尽量以自己的文字记录下来
- 永久笔记: 当我们去整理闪念和文献笔记后重新产生的笔记。或者是当我们需要写作或者发文时候的草稿。他可以是另外一张A4纸,也可以是一本由多个A4纸形成的合集。
也就是说,当闪念和文献笔记足够多的时候,你想写作根本不怕没有材料。只需要把那些小笔记通过双向连接,就可以了。而且任何笔记只要有关联,你都能把他们连接起来。
安装VS Code插件
通过安装vs code的foam插件可以让我们使用[[wikilinks]]
- 在vs code按下ctrl + shift + x 打开插件面板
- 此时光标会停留在搜索框的编辑区,输入foam
- 按tab后,上下光标可以看到有很多插件,选择foam
- 按tab,会听到install按钮,如果已经安装过这个插件则会听到manage按钮
- 按enter,进行安装此插件
另外我们还需要安装
- markdown All in One
- markdown Preview Enhance
只要重复上面的步骤去搜索和安装就可以了
通过wikilinks实现双向连接
在编辑md文件时,只需要使用两个方括号前后包起来就可以了。 比如在编辑A.md时,我想把B.md连接进来:
[[B]]
这时按下ctrl + shift + v 打开预览。可以看到有一个链接,通过点击链接就可以直接打开B.md文件
需要注意的是,这个要被连接的文件,必须是在同一个文件夹或者子文件夹下的目录才能在预览时,点击打开。
假如我的笔记目录在:
C:\project\notes
注意,全部的markdown笔记都放在一个文件夹就好,不要在分类放进子文件夹。下面是错误示范:
错误示范1:
C:\project\notes\闪念笔记\A.md
C:\project\notes\文献笔记\B.md
这样虽然在编辑A.md李能够使用[[B]],但在本地预览却因为无法找到B文件,则无法点击链接打开B.md文件
错误示范2:
C:\project\notes\文献笔记\A.md
C:\project\notes\文献笔记\闪念笔记\B.md
上面的例子展示了B.md位于A.md文件的子目录。
所以当编辑A.md的时候,加入[[B]]后,预览的连接是没有问题的。
但是如果在编辑B.md的时候,想要反向链接上几个层级的笔记就会出现问题。
就是在预览的时候,点击链接会显示无法打开文件,因为找不到对应的文件。
目前我的办法是将全部笔记存放在一个文件夹,比如:
C:\project\notes
添加默认笔记模版
- 按ctrl + shift + p 打开快捷命令
- 输入foam
- 上下光标找到foam: create new note from template, 按enter
- 第一次运行命令会弹出对话框,问你是否创建笔记模版,选择是,按enter
- 光标会到达编辑框,输入这个模版的文件名。例如Basic notes,按enter
- 一个Basic notes.md的文件会被打开,,可以阅读一下这个文件。
- 此时按ctrl + shift + e 打开内置的file explorer会发现,根目录下会多了一个.foam文件夹。里面有templates文件夹,在里面就是刚刚创立的Basic notes模版
- 按F6跳到Basic notes文件内容编辑区。
- 由于这是模版文件,选择全部内容并清除
- 编辑自己的模版内容并保存。下面是我用的模版内容
---
title: ${1:$TM_FILENAME_BASE}
foam_template:
filepath: "C:\\project\\notes\\$FOAM_TITLE.md"
type: basic-note
date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}
tags:
---
# $FOAM_TITLE
注意,title上一行是三个减号。在tags的下一行是三个减号。
你也可以创建几个模版试试,不过记得保存在.foam/templates/目录里面。
使用模版新建笔记
- 此时,再重复上面步骤1到步骤3。会发现刚刚的模版文件被列了出来,按enter
- 进入编辑新笔记的文件名,输入笔记的文件名,例如my first notes
- 按enter, 一个名为my first notes 的md就被生成了
查看双向连接情况
- 按下ctrl + shift + e 打开内置的file explorer
- 按tab, 会听到outline
- 下光标,可以看到多了几个选项 connection, tags, notes, orphans, placeholder
这些事通过安装foam插件多出来的查看选项。 - 将光标上下移到connections后,按右光标展开
5.按tab, 会听到show backlinks按钮和collapse all按钮 - 按tab,就可以看到在A.md里面所有被加入进来的笔记连接
在步骤5,一共就三个模式,show links, show backlinks, show all links。默认是在all links的情况下查看。
show links的意思是查看当前文件都加入了什么其他的文件。
如果我想查看有什么其他笔记引用了A.md,只需要在打开A.md的情况下,点击show backlinks再按tab查看即可。
show all links的意思是查看当前文件连接和被连接的文件。
其他查看选项
- tags: 是文章的标签,在front matter或者正文的标签都可以在这里查看
- notes: 目录下的全部markdown 文件
- orphans: 还没有被连接的笔记
- placeholder: 如果双方括号包夹的文件不存在,则形成placeholder。这里出现的是整个项目的placeholder,而不单是A.md文件里面的placeholder
调用md文件里的内容
只需要在wikilinks钱,夹一个感叹号就可以了。比如:
![[ABC]]
预览则会显示整篇ABC笔记的内容
如果只想调用ABC笔记的某个标题内容,在文件名后加入#, 像这样:
![[ABC#标题名字]]
像这样调用笔记或者标题内容的方法,也会被加入到connection的查看选项里。
总结
如果想要不花钱,又可以无障碍操作的双向连接markdown方案,目前我只找到foam插件。另外还有一些功能像是graph visualisation,通过github或者netlify发布,可以参考foam的项目文件
现在obsidian 也勉强可用了,用phoan 编辑完之后,配合obsidian 的 dataview 插件做笔记的结构化和多维度管理也不错