需求分析
每一次新增代码块,总需要填写指定语言,但实际一篇文章所用到的语言都是相对统一的,所以希望有一种方法可以在使用快捷键帮助填写默认语言,减少重复劳动
第一次尝试
-
通过
Everything搜索Typora路径下的frame.js(我的版本在\resources\appsrc\window目录下) -
打开
frame.js全局搜索select a language或code language(因版本而定),如果你没有管理员权限,先打开文件属性进行管理员权限提升操作,不然无法进行文件修改 -
在如下图空字符串添加你想要设置的默认代码块语言,这样在新增代码块的时候会自动填充你设置的文本
- 但这个的缺点是需要你自己在代码块语言设置中进行回车确认,因为打开源代码模式可以看到默认代码块语言还是
null,所以这种方法还是不够便利,选择pass
使用AutoHotKey热键脚本
简单介绍一下AutoHotKey,AutoHotKey可以在你进行键鼠操作的时候触发其自定义行为,比如在Typora中使用 Ctrl+Shift+K 生成空白代码块的时候自定义函数来生成 ···javascript+Enter确认 的文本操作 (这里用 · 暂代反引号),实现生成默认语言代码块并触发回车进行确认的操作,了解更多键盘按键在 AutoHotKey 对应的热键信息请前往 AutoHotKey官方文档
操作实例
使用 AutoHotKey 实现 Typora 设置代码块默认语言为例,步骤如下
-
下载
AutoHotKey:autohotkey.com/download/ah… -
右键新建
ahk脚本文件,可以新建txt文件再更改成ahk格式后缀,新建ahk文件位置没有限制,在任何地方新建都OK,建议win+R打开运行窗口并输出shell:Startup,在开机自启动文件夹中添加自定义的ahk文件,省去开机手动打开的麻烦 -
向新建的
ahk文件添加以下脚本代码-
#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,javascript Send,{Enter} Send,{Enter} Return } -
Send,{Asc 096} 表示 输出 `
asc码的096就是 `
Send,javascript 表示输出 javascript
Send,{Enter} 等于是 敲了 回车键
-
-
运行
ahk文件- 脚本如果没有生效,则重新运行
-
之后使用
Ctrl+shift+K生成代码块的时候就会自动运行脚本帮助我们生成指定的语言代码块啦~
脚本设置完成,打开typora,进行愉快的打码吧!