slug: utools-obsidian-linkage-efficiently-record-your-inspiration-flashes
datetime: 2024-02-27 12:07
summary: 使用uTools和obsidian解决方案可以实现快速记录灵感的功能。通过uTools的快捷命令,输入文字后可以将内容保存到obsidian软件里。这个方案比obsidian里的QuickAdd插件更加快捷方便。
tags:
- uTools
- obsidian
- 灵感闪记
- 原创
cover_image_url: https://images.unsplash.com/photo-1602671784371-042db95df1c9?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wzNjAwOTd8MHwxfHNlYXJjaHw0OHx8Y29mZmV8ZW58MHx8fHwxNzA5MDA3MzE1fDA&ixlib=rb-4.0.3&q=80&w=1080
为什么需要?
众所周知 obsidian 里有个插件叫 QuickAdd,这个插件确实不错,可以在你使用 ob 软件时迅速捕获灵感,但时间久了总觉得有点局限,因为它仅限在 ob 软件里使用,那么如果在软件外呢?
通常这样,你正在做别的事情,可能在看视频,可能在阅读公司材料,突然,灵感来了,我们先打开 ob,再记录,虽然也不错,但还是慢了一点,有些灵感可能稍瞬即逝,能不能再快一点呢?
当然可以,这就是 uTools + obsidian 解决方案,uTools 是一款高效的效率工具,用什么只需要 alt+空格键即可呼出,迅速输入文字,通常能匹配到你的工具,尤其常用的工具都在前面,然后你点击“灵感闪记”按钮即可记录到 obsidian 里。“灵感闪记”是你自己写的小程序段,自己起的名字,这个名字随便起,当然你也可以叫 capture。
下面开始讲怎么实现:
只需要安装 Advanced URI 插件即可。
# 获取当前日期
d=$(date "+%Y-%m-%d %H:%M:%S")
# 从uTools输入框获取值
val="{{subinput:请输入}}"
# 自定义你内容模板(其中val就是你输入的文本)
data="$d
$val
---
"
# 打开obsidian并写入数据(必须安装Advanced URI插件才行)
open "obsidian://advanced-uri?vault=我的笔记&filepath=capture/capture.md&mode=prepend&silent=1&data=${data}"
代码解释请看注释,这里的 ${val}
就是你从 uTools 输入的文本,会传到 Advanced URI 的 data 参数中,最终用 shell 打开即可。这里不用担心 URL 编码问题,uTools 会帮你编码,如果你代码里也编码一次会导致重复编码,而被 ob 报地址错误。
注意:
使用很简单,只需要 alt + space 呼出 uTools 工具,然后输入你刚才保存的名字,比如 capture,通常你只要输入 cap 就匹配到了 (如果你经常使用就在下面,选择即可),然后输入你的文字,回车即可,你的文字自动会按照代码里写的格式保存到你指定的文件中,我这里的代码是头部插入到 capture. Md 里,当然你也可以追加或者新建。描述起来看起来有点麻烦,其实主要在讲原理或方法,真正用起来打几个字符就可以了,很快哈,都来不及闪。
如果你还嫌慢,那就设为全局快捷键,在个人中心 -> 全局快捷键中,输入你的命令名字,比如"灵感闪记"(这个名字必须全局唯一),然后按下你的快捷键,比如是 alt + q 吧。
设置好后,然后你使用的时候按 alt + q ,输入文字,然后回车保存即可,是不是很快!
最后,我一直想找类似 ob 官方的 silent=1 不打开 ob 软件而写入内容的参数,貌似也没找到,但官方的也不起作用,有知道的同学可以留言告诉我,谢谢啦!
祝您玩的愉快!
-------- ps --- 2024-3-1 更新 ----------------------------------------------------------
已经不用打开 ob 软件了,代码改成了如下,直接让脚本修改 md 文件完事
# 当前日期
d=$(date "+%Y-%m-%d %H:%M:%S")
# 输入框
val="{{subinput:请输入}}"
#capture路径
file="/Users/xxxx/Documents/我的笔记/capture/capture.md"
# 内容模板
echo -e "${d}\n\n${val}\n\n---\n" > /tmp/~~capture.tmp1 && cat /tmp/~~capture.tmp1 "$file" > /tmp/~~capture.tmp2 && mv /tmp/~~capture.tmp2 "$file"
osascript -e "display notification \"您的灵感 $val 已记录成功!\" with title \"提示:\""
说明:以上代码在 Mac 上厕所通过,其他系统请自行修改。