Typora实现设置代码块默认语言(AutoHotKey方式和修改配置文件)
前言,需求
小伙伴们在进行Typora笔记时,每一次新增代码块,总需要填写指定语言,但实际一篇文章所用到的语言都是相对统一的,所以希望有一种方法可以在使用快捷键帮助填写默认语言,减少重复劳动。
使用AutoHotKey热键脚本【最简单方便】
简单介绍一下AutoHotKey,AutoHotKey可以在你进行键鼠操作的时候触发其自定义行为,比如在Typora中使用 Ctrl+Shift+K
生成空白代码块的时候自定义函数来生成 ···javascript+Enter确认
的文本操作 (这里用 · 暂代反引号),实现生成默认语言代码块并触发回车进行确认的操作,了解更多键盘按键在 AutoHotKey
对应的热键信息请前往 AutoHotKey官方文档
实现步骤
- 下载
AutoHotKey
:autohotkey.com/download/ah… - 右键新建
ahk
脚本文件,可以新建txt
文件再更改成ahk
格式后缀,新建ahk
文件位置没有限制,在任何地方新建都OK。 - 向新建的
ahk
文件添加以下脚本代码:【如果是其他快捷键仅需修改一行。例如是alt+z
则将^+k::addCodeJavaScript()
改为!z::addCodeJavaScript()
】Send,java
这里修改为想要的语言。
#IfWinActive ahk_exe Typora.exe
{
; Ctrl+Alt+K javascriptCode
; crtl 是 ^ shift 是 + k键 是 k alt 是 !
^+k::addCodeJavaScript()
}
addCodeJavaScript(){
Send,{Asc 096}
Send,{Asc 096}
Send,{Asc 096}
Send,java
Send,{Enter}
Send,{Enter}
Return
}
Send,{Asc 096} 表示 输出 `
asc码的096就是 `
Send,javascript 表示输出 javascript
Send,{Enter} 等于是 敲了 回车键
4. 运行 ahk
文件
脚本如果没有生效,则重新运行
建议
建议 win+R
打开运行窗口并输出 shell:Startup
,在开机自启动文件夹中添加自定义的 ahk 文件,省去开机手动打开的麻烦。
最终效果
之后使用 Ctrl+shift+K 或其他快捷键
生成代码块的时候就会自动运行脚本帮助我们生成指定的语言代码块啦~
脚本设置完成,打开typora,进行愉快的打码吧!
其他方法
-
通过 Everything 搜索 Typora 路径下的 frame.js (我的版本在 \resources\appsrc\window 目录下)
-
打开 frame.js 全局搜索 select a language 或 code language(因版本而定),如果你没有管理员权限,先打开文件属性进行管理员权限提升操作,不然无法进行文件修改
-
在如下图空字符串添加你想要设置的默认代码块语言,这样在新增代码块的时候会自动填充你设置的文本
-
但这个的缺点是需要你自己在代码块语言设置中进行回车确认,因为打开源代码模式可以看到默认代码块语言还是 null,所以这种方法还是不够便利,选择pass
自定义Typora代码块快捷键设置。应对ctrl+shift+k
快捷键被其他占用的情况。
文件 -> 偏好设置 -> 打开高级设置。 如下图:
进入conf.user.json
修改为以下代码:【这里代码块的快捷键改为"Alt+Z"】小伙伴们也可以改为自己想要的!
// Custom key binding, which will override the default ones.
// see https://support.typora.io/Shortcut-Keys/#windows--linux for detail
"keyBinding": {
"Code Fences": "Alt+Z"
// for example:
// "Always on Top": "Ctrl+Shift+P"
// All other options are the menu items 'text label' displayed from each typora menu
},
![](https://img-blog.csdnimg.cn/20210222185528265.png)
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠