在Typora中使用快捷键设置文本颜色(通过AutoHotkey 2.0)

使用Typora时不能设置文本颜色,总是觉得不方便,于是在网上搜索,发现有个小工具:AutoHotkey,编写脚本后,通过快捷键的方式可以设置Typora的文本颜色。

下载软件

https://www.autohotkey.com/ 这个网址下载AutoHotkey并安装

脚本实现

网上很多实现方式都是基于AutoHotkey v1.0、v1.1的,AutoHotkey v2.0已经不能兼容运行了,所以查了一下资料,写了一个2.0的脚本。将下面的脚本复制到记事本中,另存为typora.ahk,然后双击加载脚本

#Requires AutoHotkey v2.0
; Typora快捷增加字体颜色

if WinActive("ahk_exe Typora.exe"){
    ; ctrl+alt+r 红色
    ^!r::addFontColor("red")

    ; ctrl+alt+o 橙色
    ^!o::addFontColor("orange")

    ; ctrl+alt+y 黄色
    ^!y::addFontColor("yellow")

    ; ctrl+alt+g 绿色
    ^!g::addFontColor("green")

    ; ctrl+alt+b 蓝色
    ^!b::addFontColor("blue")

    ; ctrl+alt+p 紫色
    ^!p::addFontColor("purple")
}

; 快捷增加字体颜色
addFontColor(color){
    SetEnglishIME()
    Sleep(200)

    clipboard := "" ; 清空剪切板
    SendInput "^c" ; 复制
    SendInput "<font color='"
    SendInput color
    SendInput "'>"
    SendInput "^v"  ; 粘贴
    SendInput "</" ; Typora会自动补全标签
}

;---------------------------------------------------------------------o
; 输入法状态获取
; 环境: AutoHotKey 2.0
;---------------------------------------------------------------------o
isChineseIME(WinTitle:="A")
{
    try {
        hWnd := WinGetID(WinTitle)
    } Catch(error) {
        ; ^Esc 开始菜单弹窗,会卡死在找不到当前窗口
        return
    }
    DetectHiddenWindows True
    result := SendMessage(
            0x283,  ; Message : WM_IME_CONTROL
            0x005,  ; wParam  : IMC_GETOPENSTATUS
            0,      ; lParam  : (NoArgs)
            ,       ; Control : (Window)
            "ahk_id " DllCall( "imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint")
            )
    DetectHiddenWindows False
    ; 1 非英文状态
    ; 0 英文状态
    return result
}

SetEnglishIME()
{
    ret := isChineseIME()
    if(ret)
    {
        SendInput ("{ShiftDown}{ShiftUp}")  ; 切换到英文输入状态
    }
}

脚本说明

  1. 上述脚本在AutoHotkey v2.0.5中运行通过
  2. 脚本中分号后面的内容是注释
  3. 如果不喜欢上面的快捷键,可以修改脚本,^ 代表Ctrl;+ 代表Shift;! 代表Alt;# 代表Win,如!1代表按下Alt+数字1、^!1代表按下Alt+Shift+数字1
  4. 如果是中文输入状态,按下快捷键后脚本会切换到英文输入状态(在中文输入状态显示内容会不对)。只使用Alt键+字母或数字不能正常触发,会切换到Typora的菜单栏,所以脚本中用了Ctrl+Alt,如果不想使用Ctrl键,在按快捷键前请手动切换到英文输入状态

使用说明

  1. 每次开机后都要启动脚本,确保脚本在后台运行
  2. Typora打开文档后,选中内容然后按下脚本中的快捷键即可

参考资料

AutoHotKey v2.0 在 Typora 中的应用_I凝冰舞I的博客-CSDN博客
https://blog.csdn.net/u011041411/article/details/128479959

posted @ 2023-08-16 17:46  fly263  阅读(709)  评论(0编辑  收藏  举报