前言
最近刚从使用了一年多 wolai 的家庭版(充了 三年)转到思源笔记,吸引我的主要就是思源的引用链接是可以浮窗展示的,并且思源的本地文档也是我看中的功能,因为我本人主要就是使用笔记整理学习笔记,记录一些日常心得,对实时协作需求几乎没有(主要是家庭版的另一位成员我的女票,我安利了他一年 wolai,不为所动,钉在飞书文档不走了)还有就是一些隐私笔记不想上传云端(因为我本人做医疗云的开发,就算对外宣传如何保密啥的,但是真实生产环境开发人员还是可以看到病人的一些私密信息)。在这一周的时间简单的逛了下社区和论坛,其中有 2 个帖子( 技巧分享:让思源笔记作为学习编程语言的笔记本 , 技巧分享:在任意地方用 ahk 打开思源链接 )对我挺有启发的,间接的促使我完成了他们的“未完成的使命”。
Jetbrains 系软件(视频演示的 Intellij Idea,其它的应该同理),只要是做软件开发的小伙伴应该都熟悉,这个帖子主要讲解的是如何从 IDEA 里面跳转到思源笔记以及在思源笔记里面如何跳转到 IDEA 编辑器里面。这种思路的受这位同学的启发 技巧分享:让思源笔记作为学习编程语言的笔记本 。因为我们日常开发有些核心代码觉得写的不错或者记一些代码笔记以供后续参考,我们不可能把代码的上下文语义代码都抄到思源笔记里面去(笔记软件不是 IDE 工具!!!),另一种在 IDE 编辑器里面对代码做注释笔记又不方便后续复习和调用。本帖子主要就是对 2 者“无缝”跳转方案做一个具体演示。最终完整版效果还得依赖开发者完善 siyuan://
协议的跳转(问题见 思源协议 siyuan:// 打开笔记,窗口不显示的解决办法 ),(目前我是使用了油猴软件写了一个 js 脚本过渡的)。具体演示视频如下:
重中之重
我的订阅码:JSa9h5M
(等我成了恶龙,所有相关快捷动作都上传论坛,其实自己动手一步一步也不难)
基本工具
- macos 系统(没试过 window)
- nginx(通过 brew 安装,可百度)
- Keyboard Masetro
- Chrome 浏览器
- Chrome 浏览器 Tampermonkey 插件(油猴)
具体操作
第一步:idea 编辑器调转思源笔记,上面 2 位同学都是用 ahk 实现的。基于快捷键实现了编辑器跳转到思源笔记。我这里提供 2 个解决办法:
-
第 1 种是使用 Keyboard Masetro
说明一下步骤(具体 Keyboard Masetro 教程可自行百度):- 首先定义一个快捷键触发器,我定义的是
shift + command + J
(在你选中的类似于siyuan://blocks/20211118110307-8ke34or
文本上操作) - Keyboard Masetro 执行
command + C
操作(会复制你链接) - 将系统剪切板复制到变量 Text 上去(也就是具体的 类似于
siyuan://blocks/20211118110307-8ke34or
的链接) - Keyboard Masetro 打开具体的链接
- 激活思源笔记(主要是目前
siyuan://
的 url scheme 跳转不完善)
这种办法是参考了上述 2 位同学的思路。确定是每次都要找到具体链接,然后按住
shift + command + J
才能完成 IDEA 编辑器跳转到思源笔记,优点是跳转比较丝滑。 - 首先定义一个快捷键触发器,我定义的是
-
第 2 种是使用 nginx,谷歌浏览器插件 Tampermonkey 插件。
- 给予 IDEA 编辑器会识别
http://
协议的特性
IDEA 的注释会识别http://
,https://
,mailto://
这些协议,昨晚逛了一晚上 jetbrain 的官网社区,没有找到怎么支持siyuan://
这种第三方的 url scheme 协议。所以我们得从http://
做跳板。用这种http://localhost?location=siyuan://xxxx
这种格式 - 启动 nginx(主要起的是一个本地 web 服务的作用,不至于上面那位同学要部署一个网站那么夸张)
- 在谷歌浏览器油猴插件上新增一个脚本,拦截
http://localhost/*
(路径自己可定义只要和上面 nginx 保持一致即可),截取 location 后面的siyuan://
的内容,让 js 完成唤起思源软件的作用,然后关闭当前的 浏览器http://localhost?location=siyuan://xxxx
的页面 - 使用 Keyboard Masetro 将思源笔记拉到窗口的最前面(主要还是这个问题 思源协议 siyuan:// 打开笔记,窗口不显示的解决办法 )
定义 Keyboard Masetro 的 url shceme 动作触发
这种办法主要的好处就是可以直接在 IDEA 编辑器通过超链接的形式点击跳转到思源笔记(不像第一种方式要首先选择文本,在去按
shift + command + J
快捷键),缺点是不够丝滑,但也能接受, 0.5 之内就完成跳转了,窗口有跳转痕迹。这是因为siyuan://
协议本身不完善以及 IDEA 注释里面不支持第三方 shceme 导致的。这种方案应该算是独创吧。。 - 给予 IDEA 编辑器会识别
第二步:思源笔记跳转到 IDEA 编辑器,这是重点!!!,有哪位老铁想要订阅用我的推荐码哈
- 还是通过 Keyboard Masetro,如图
- 首先定义一个 IDEA 中没有占用的快捷键(
command + escape
)作为触发器 - 在 Keyboard Masetro 中执行
shift + cammand + C
操作,主要是模拟 IDEA 中复制文件绝对路径的快捷键(会复制成/Users/xxx/Documents/workspace/idea-workspace/java-gradle-learning/src/main/java/com/sunxu/java/chap05/Mapping.java)这种 java 文件的绝对地址。 - 复制剪切板到变量 Absolute 中去
- 在 Keyboard Masetro 中执行
option +shift + cammand + C
操作,主要是模拟 IDEA 中复制文件引用的快捷键(com/xxx/java/chap05/Mapping.java:18)这种形式 - 复制剪切板到变量 Column 中去
- 使用 shell 脚本截取(com/xxx/java/chap05/Mapping.java:18)得到最后面的代码的行号 18 保存到变量 ColumnNum 中去
- 最终将上面的 Absolute 变量和 ColumnNum 变量组合成 markdown 形式的超链接文本【代码链接】(
- 将变量 url 复制到系统剪切板上
- 在思源笔记里面复制,效果如下
- 首先定义一个 IDEA 中没有占用的快捷键(
至此 2 个方向的流动均已打通,兄弟们可以方便的边敲代码,边记笔记了。不说了,我要愉快地敲代码去了,现在的目标就是想成为 D 大和 V 姐那样,做自己想做的产品。。正在安利女票转成前端。哈哈
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于