既然在看 Obsidian 的教程,想必已经知道 Obsidian 的是什么软件了吧。下面是一些我个人觉得有用的 Obsidian 配置 & 使用,希望本文能帮助到您!!!
文献笔记工具(Citations 插件)
这是一个清晰明了的一站式教程
Zotero 导出文献元信息
(1)首先在 Zotero 中安装 Better BibTex 插件,安装步骤如下:
- 到 Github Releases 下面下载 XPI 文件;
- 在Zotero内点击
Tools -> Add-ons
,然后将 XPI 文件拖进去; - 点击 Install 即可。
(2) 修改 Citation Key(非必须)
建议先 点击 Edit -> Preferences
, 将 Citation Key format 更换成如下,将年份作为起始名称。
然后在 My Library 中选中所有的文件,右键点击 Better BibTex -> Refresh BibeTex Key
。
(3)导出文献元信息文件
然后导出 Better CSL Json 格式的文件,步骤如下:
- 在 Zotero 右键 My Library ,然后点击
Export Library...
; - 选中
Keep updated
,指定 CSL JSON 格式; - 将导出的文件保存到某个目录下,例如命名文件为
My Zotero Library.json
。
在 Zotero 的偏好配置里面可以看到如下:
Citations 插件对应配置
(1)Citations 内的路径配置
然后在Obsidian安装Citations插件,在插件设置中设置对应的文件路径,Citation database path 是 My Zotero Library.json
的路径名,然后 Literature note folder
是自动存放在 Obsidian Vault 的位置。
(2)配置论文笔记模板
在Citations配置中插入如下,即可每次使用快捷键新建一个与Zotero文件对应Note文件,里面包好了打开Zotero对应文件项的超链接。
在 Literature note content template 插入如下:
---
title: {{title}}
authors: {{authorString}}
year: {{year}}
aliases: ["{{title}}"]
---
---
[zotero link]({{zoteroSelectURI}})
开始使用 Citations
在 Vault 中插入文献笔记的方式就是使用快捷键 Ctrl + Shift + O ,然后搜索到相应的论文,点击即可,下图是操作结果示例。
其它操作可以看设置中的快捷键(HotKey)或者命令窗口(Ctrl + P),包括:
- Inset literature note reference:快捷键 Ctrl + Shift + E ,新建文献笔记,并将笔记链接插进当前笔记。
- Insert literature note content in the current pane:将文献笔记内容插入进当前打开的笔记,并不新建笔记文件。
- Insert Markdown citation:插入 Pandoc 风格的引用。
关于 Zotero 的链接(可忽略)
在 Citations 的输出中用到了 Zotero 协议的Schema:zotero://select/items/...
,这个功能在官网上找不到相关教程,但是在Zotero开源仓库上可以找到,放在一个 zotero-protocol-handler 文件中,里面还有相关注释。
但是在该文件中没有找到 Citations 提供的 URI 格式 zotero://select/items/citationKey
,只找到了如下链接方式的注释:
- 定位到对应 Item 的 URI 格式如下:
zotero://select/library/items/itemKey
- 打开 PDF 文件的 URI 格式如下:
zotero://open-pdf/library/items/itemKey
在 Citations 的仓库中找到 Zotero 链接的生成方式如下:
/**
* A URI which will open the relevant entry in the Zotero client.
*/
public get zoteroSelectURI(): string {
return `zotero://select/items/@${this.id}`;
}
另外 Zotero 的插件 Mdnotes 利用了两种格式,其代码如下:
function getLocalZoteroLink(item) {
let linksString = "zotero://select/items/";
const library_id = item.libraryID ? item.libraryID : 0;
linksString += `${library_id}_${item.key}`;
return linksString;
}
function getZoteroPDFLink(attachment) {
return `zotero://open-pdf/library/items/${attachment.key}`;
}
备份与同步
可以直接将 Vault 目录放在同步盘中,比如 OneDrive。另外,Osidian 官方提供了核心插件 File Recovery,在 Core Plugins
中可以看到,开启后,可以在设置界面中打开File Recovery,然后修改 Snapshot 的时间间隔和存储快照份数。
但是为了更好的使用,如下途径也是必要的。
Git 版本控制
还可以使用Git版本控制,安装好Obsidian Git插件,然后在本Vault中初始化一个Git仓库,在Github或者GitLab建立一个仓库,将本地仓库与远程仓库对应。最后在Obisidian Git设置中设置Commit的时间间隔和Push的时间间隔。
从个人的使用经历来看,一定要使用 Git 做好版本管理和备份。File Recovery 只能一个个处理,而且删掉的没法处理。
移动端同步
需要移动端和PC端同步可以使用 Remotely Save 插件,但一定要做好备份工作,因为可能有BUG,或者个人操作失误。
Remotely Save 提供了几种模式的同步,我是用的是Webdav模式,利用坚果云的 Webdav 接口(因为 OneDrive 在这里不好用)。下面展示操作的过程(先在 Obsidian 安装好 Remotely Save 插件):
- 回到Obsidian,进入Remotely Save 插件设置页面,选择 Webdav 服务,并填入(1)服务器地址;(2)账户(Username)和(3)密码。
- 如果想要修改在坚果云上面的目录,可以修改目录名,然后点击 Confirm,并且 Check 查看是否连接上
- 最后在 Obsidian 主页面点击 Remotely Save 按钮(一个圆圈形状的按钮),即可将内容同步上去。
注意:服务器偶尔“抽风”出现 503 错误属于正常现象,请间隔一段时间后操作。
在手机端创建一个空 Vault,按前面相同操作,注意要指定坚果云上相同的目录,点击 Remotely Save 按钮就可以将内容从坚果云拉去下来。
插件里面也可以设置间隔时间自动同步功能,相关功能自行设置即可。
任务管理
Obsidian的一部分功能是做方便学习工作的时候任务管理,一些好用的插件,包括 Kanban、Checklist、Tasks等等。
任务看板
安装第三方插件Kanban(看板),然后在主页面的某个目录右键,点击 New kanban board
,新建一个看板页面。
Checklist
安装 Checklist 插件,如下插入任务,在 checklist 窗口可以看到。
#todo
- [ ] 任务一
- [ ] 任务二
图片操作
图片之增删改查
(1)插入/下载图片
可以直接将图片拖进文本,图片将默认放在Vault的根目录上,然后使用Wiki文本语法插入。图片自动放置的位置可以在Settings->Files & Links
中设置。
使用 Local images 插件
(2)自动删除无效图片
在有时候图片已经放在Vault里面了,但是文本修改的过程发现用不着了,可以使用第三方插件Unused Images来解决,该插件提供一个Toolbar工具,点击它可以自动删除没有被引用的图片。
(3)修改图片
修改图片大小可以使用wiki语法,如下所示:
![[image.png|400]]
并且可以指定图片的左右位置,例如:![[image.png|400|left]]
。
也可以使用扩充的Markdown语法来插入外部链接图片,如下所示:

注意这不是基础的 Markdown 语法,其它平台上并不支持
(4)Image Tookit 查看图片
使用 Image Toolkit 插件可以点击放大查看图片。另外可以使用该插件提供的复制功能,实现将网络链接形式的图片本地化。
上传图片
有一个方案就是使用 Image auto upload Plugin 插件,然后配合 PicGo (自动上传图片工具)使用。
主题设置
主题设置在 Settings -> Appearance
中,点击Manage,然后挑选一个自己喜欢的主题,这一步可能需要点时间等待。
我这里使用的主题是Blue Topaz,也是比较推荐的主题,因为比较养眼。除了要安装主题,还有安装一个插件Style Settings来配置Blue Topaz。在Settings -> Style Settings -> Blue Topaz Theme -> []()General Settings
中设置Color Palette,也就是该主题的基调,我选择是Avocado(牛油果)淡绿色。
文本编辑
Obsidian 使用 Markdown 文本作为页面的文件格式,自然是支持所有的基础 Markdown 语法,不了解的同学请查看相关教程。
另外,Obisidian 里面还支持一些 Markdown 之外的编辑排版功能。
Markdown 编辑
在 Obsidian 中的Markdown编辑体验可能没有 Typora好,主要是缺少一些快捷操作,我们可以使用插件填平两者之间的差距。
(1)使用 Advanced Tables 插件快速操作表格
Markdown本身提供了表格语法,但是操作很麻烦,我们可以使用第三方插件Advanced Tables来加快表格的操作。
基本操作方法:按Tab键跳转下一个块(会自动格式化),按Shift+Tab键会往左跳转。
(2)使用 cMenu 插件提供 Markdown 编辑按钮(小白专供)
创建链接
(1)链接到某一篇文章
示例:[[Obsidian Note]],这个示例作为(3)的链接块。 ^link-example
(2)链接到某一个章节
[[Obsidian Note#创建链接]]
(3)链接到某一个块
可以直接在链接处输入[xxx#^]
,然后选择对应块;也可以先在链接源输入^link-text
自定义一个上标。
示例:[[Obsidian Note#^link-example]]
给链接赋予别名
示例:[[Obsidian Note#^link-example | 文章链接示例]]
Markdown 扩展
(1) 高亮文本功能
==高亮文本==
(2) Obsidian 的脚注效果
Obsidian 里面的脚注在阅读模式下是自动将脚注内容放在文章末尾,在 Live Preview 中没有这个效果,切换至阅读模式才能看得出效果。
Here's a simple footnote,[1] and here's a longer one.[2]
(3)Obsidian 中的引用块 Callout
Markdown 中的引用块是直接输入 >
加空格,然后输入文本,本身是没有任何图标和特殊的渲染。Obsidian 支持 Microsoft Docs 的引用块(blockquote)扩展语法,称为 Callout 。下面就是 Callout 的使用示例。
>[!note]
>[!info]
>[!question]
>[!failure ]
>[!bug]
效果如下:
Obsidian 支持的全部 Callout 标签:
- note
- abstract, summary, tldr
- info, todo
- tip, hint, important
- success, check, done
- question, help, faq
- warning, caution, attention
- failure, fail, missing
- danger, error
- bug
- example
- quote, cite
VIM 模式
在设置中开启Vim模式,注意要把Obsidian默认的行删除快捷键 Ctrl+D
删除掉,就在 Settings->Hot Keys
中,搜索 Delete paragraph
,将快捷键删除或者重新设置一个。
为了更好的使用体验,需要用到Vim的配置文件。为此,要给 Obsidian 安装第三方插件 Vim Support ,然后在Vault根目录下创建配置文件.obsidian.vimrc
,下面是简单的配置示例,这也是官方示例:
" Have j and k navigate visual lines rather than logical ones
nmap j gj
nmap k gk
" I like using H and L for beginningend of line
nmap H ^
nmap L $
" Quickly remove search highlights
nmap F9 nohl
" Yank to system clipboard
set clipboard=unnamed
" Go back and forward with Ctrl+O and Ctrl+I
" (make sure to remove default Obsidian shortcuts for these to work)
exmap back obcommand appgo-back
nmap C-o back
exmap forward obcommand appgo-forward
nmap C-i forward