在VS Code实现卡片和笔记

卡片和笔记

以往当我们写笔记或者写作的时候都是由上而下。也就是先有标题,才有内容。而且笔记和笔记之间没有联系,只能通过分类或者标签去分门别类。
卡片和笔记则是由下而上,他分成以下三种类型:

  • 闪念笔记: 简单来说,就是一张小卡片。记录突然间的一些想法或者知识点。尽量做到一张卡片一个知识点。
  • 文献笔记: 可以想象成是一张A4纸。可以通过多个卡片或者额外加入文字形成。记录着阅读书本、观看视频等等的读后感,尽量以自己的文字记录下来
  • 永久笔记: 当我们去整理闪念和文献笔记后重新产生的笔记。或者是当我们需要写作或者发文时候的草稿。他可以是另外一张A4纸,也可以是一本由多个A4纸形成的合集。

也就是说,当闪念和文献笔记足够多的时候,你想写作根本不怕没有材料。只需要把那些小笔记通过双向连接,就可以了。而且任何笔记只要有关联,你都能把他们连接起来。

安装VS Code插件

通过安装vs code的foam插件可以让我们使用[[wikilinks]]

  1. 在vs code按下ctrl + shift + x 打开插件面板
  2. 此时光标会停留在搜索框的编辑区,输入foam
  3. 按tab后,上下光标可以看到有很多插件,选择foam
  4. 按tab,会听到install按钮,如果已经安装过这个插件则会听到manage按钮
  5. 按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

添加默认笔记模版

  1. 按ctrl + shift + p 打开快捷命令
  2. 输入foam
  3. 上下光标找到foam: create new note from template, 按enter
  4. 第一次运行命令会弹出对话框,问你是否创建笔记模版,选择是,按enter
  5. 光标会到达编辑框,输入这个模版的文件名。例如Basic notes,按enter
  6. 一个Basic notes.md的文件会被打开,,可以阅读一下这个文件。
  7. 此时按ctrl + shift + e 打开内置的file explorer会发现,根目录下会多了一个.foam文件夹。里面有templates文件夹,在里面就是刚刚创立的Basic notes模版
  8. 按F6跳到Basic notes文件内容编辑区。
  9. 由于这是模版文件,选择全部内容并清除
  10. 编辑自己的模版内容并保存。下面是我用的模版内容

---
  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. 此时,再重复上面步骤1到步骤3。会发现刚刚的模版文件被列了出来,按enter
  2. 进入编辑新笔记的文件名,输入笔记的文件名,例如my first notes
  3. 按enter, 一个名为my first notes 的md就被生成了

查看双向连接情况

  1. 按下ctrl + shift + e 打开内置的file explorer
  2. 按tab, 会听到outline
  3. 下光标,可以看到多了几个选项 connection, tags, notes, orphans, placeholder
    这些事通过安装foam插件多出来的查看选项。
  4. 将光标上下移到connections后,按右光标展开
    5.按tab, 会听到show backlinks按钮和collapse all按钮
  5. 按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的项目文件

标签: vs code, foam

仅有一条评论

  1. ac

    现在obsidian 也勉强可用了,用phoan 编辑完之后,配合obsidian 的 dataview 插件做笔记的结构化和多维度管理也不错

添加新评论