使用User Plugins插件实现Vim Mode的命令/快捷键切换

1、在Obsidian库中自行创建一个保存脚本的目录,如Scripts

2、将如下JS脚本保存为vimtoggle.js文件;

module.exports = {}

module.exports.onload = async (plugin) => {
  plugin.addCommand({
    id: 'toggle-Vim-Mode',
    name: 'vim mode',
    hotkeys: [{ modifiers: ["Ctrl", "Shift"], key: "v" }],
    callback: async () => {
        if (plugin.app.vault.getConfig("vimMode")) {
            plugin.app.vault.setConfig("vimMode", false);
        } else {
            plugin.app.vault.setConfig("vimMode", true);
        }
    }
  });    
}

3、在User Plugins插件配置对话框中输入Scripts为脚本存放目录;

4、刷新后,打开vimtoglle的选择开关;

5、在编辑状态下,可以使用命令或者ctrl+shift+v切换是否使用Vim模式。

2 个赞

感谢分享,这个实用

1 个赞

直接Quickadd就行了

```js quickadd
if (app.vault.getConfig("vimMode")) {
	app.vault.setConfig("vimMode", false);
	new Notice("🔴已关闭Vim模式");
} else {
	app.vault.setConfig("vimMode", true);
	new Notice("🟢已启动Vim模式");
}
```

若有启用 Templater 插件,用 Capture to active file,若所在档为 Templater JS 模板档,会执行档的 Templater JS,容易有意外,应选择一个单独的空 MD 档。多个代码可以选同一个文档。

示例,开启 Templater,将下方文本粘贴到一个 MD 档:

<%*
await tp.file.move(`目标文件夹/${tp.file.title}`)
-%>

若 QuickAdd 选择 Capture to active file,在这个档用 QuickAdd,这个档会被立刻移动到“目标文件夹”。

2 个赞