【技巧】使用连续按键来快速打开页面

分配快捷键

想要用快捷键打开一些页面(比如特定的 MOC 页面,像是 DailyNote 的主页、项目的目录……甚至是某些插件的界面),但是发现常用的快捷键都已经分配过了 Orz

怎么办呢?
我灵机一动想到,在微软的 Visual Stuio 软件内会有连续按键组成的快捷键[^1]:

例如,上图中的 Ctrk+K, Ctrk+S 就是在按下 Ctrl+K 之后,再按一下 S,就能执行「包裹代码」的功能。

在 Obsidian 内,果不其然也有插件实现了这个功能!那就是——Sequence Shortcuts[^2]!

借助这个插件,我们可以像分配普通快捷键一样,给命令分配「连续按键快捷键」:

分配方式很简单,先点加号,然后按下快捷键序列(按住 Ctrl,按下 K 然后按下 M),最后点击打勾按钮确认:
240629_使用连续按键来快速打开页面-img-240629_164917

这样一来,就可以用 Ctrl+K+M 来执行这个命令了!

[!info] 快捷键重复的情况
需要注意的是,这样的前提是你的第一个快捷键(比如上面的 Ctrl+K )没有被占用。如果占用了的话,按键会无效。
这时候可以换一个快捷键,或者在 OB 设置内的快捷键把分配了的快捷键取消掉。


打开指定页面

页面举例

比如说,我有这么几个常用的页面:

  • iCloud 收集页面:Ctrl+K+I
  • 卡片盒页面(Zettelkasten):Ctrl+K++Z
  • 晨间日记:Ctrl+K+D
  • Vault Explorer 插件:Ctrl+K+V

统一使用 Ctrl+K 作为前缀(K 代表 Key,也是和 VS 那边的快捷键统一),然后取页面的首字母来作为第二个字母,方便又好记。

如你所见,因为 Sequence Hotkeys 插件是执行指令,所以不仅仅是打开新页面,你可以用连续快捷键执行任何 Obsidian 指令

只不过运行指令不需要教,所以这里略过不提。

那么怎么通过指令打开特定的页面呢?
这里有两种方式:

  1. Templater 插件
  2. Hotkeys for specific files 插件

Templater 的做法

首先是最常用的 TP 插件,可以创建一个新模板,粘贴以下代码:

<%* 
// 在这里输入你要打开的文件名
filename = "Zettelkasten";

const file = tp.file.find_tfile(filename);
app.workspace.getLeaf("tab").openFile(file);
%>

然后在 TP 插件里将这个模板添加进「Template Hotkeys」:

这样一来它就会被创建成一条单独的指令。

然后,就可以在刚才 Sequence Hotkeys 的插件设置界面给它分配连续快捷键了。

Hotkeys for specific files

这个插件[^3]更简单轻松一些,安装完之后直接进入插件的设置页面:

先点击 Create 按钮创建一个新的命令框,然后在命令框里输入文件路径。
最后,点击 Add 按钮将指令注册到 OB。

这样就完成啦!

总结

这次的文章其实就是两个要点:

  1. 怎么把「打开 xx 文件」注册成一个指令(Command),以便分配快捷键
  2. 利用 Sequence Hotkeys 插件使 OB 支持将「连续按键」作为快捷键

[^1]: Keyboard shortcuts - Visual Studio (Windows) | Microsoft Learn
[^2]: moolmanruan/obsidian-sequence-hotkeys
[^3]: Vinzent03/obsidian-hotkeys-for-specific-files

5 个赞