Typora实现设置代码块默认语言(AutoHotKey方式)

2,075 阅读2分钟

需求分析

每一次新增代码块,总需要填写指定语言,但实际一篇文章所用到的语言都是相对统一的,所以希望有一种方法可以在使用快捷键帮助填写默认语言,减少重复劳动

第一次尝试

  1. 通过 Everything 搜索 Typora 路径下的 frame.js (我的版本在 \resources\appsrc\window 目录下)

  2. 打开 frame.js 全局搜索 select a languagecode language(因版本而定),如果你没有管理员权限,先打开文件属性进行管理员权限提升操作,不然无法进行文件修改

  3. 在如下图空字符串添加你想要设置的默认代码块语言,这样在新增代码块的时候会自动填充你设置的文本

image.png

  1. 但这个的缺点是需要你自己在代码块语言设置中进行回车确认,因为打开源代码模式可以看到默认代码块语言还是 null,所以这种方法还是不够便利,选择pass

使用AutoHotKey热键脚本

简单介绍一下AutoHotKey,AutoHotKey可以在你进行键鼠操作的时候触发其自定义行为,比如在Typora中使用 Ctrl+Shift+K 生成空白代码块的时候自定义函数来生成 ···javascript+Enter确认 的文本操作 (这里用 · 暂代反引号),实现生成默认语言代码块并触发回车进行确认的操作,了解更多键盘按键在 AutoHotKey 对应的热键信息请前往 AutoHotKey官方文档

操作实例

使用 AutoHotKey 实现 Typora 设置代码块默认语言为例,步骤如下

  • 下载 AutoHotKeyautohotkey.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 文件

    • image.png
    • 脚本如果没有生效,则重新运行 image.png
  • 之后使用 Ctrl+shift+K 生成代码块的时候就会自动运行脚本帮助我们生成指定的语言代码块啦~

脚本设置完成,打开typora,进行愉快的打码吧!

参考链接🔗