Typora实现快捷改变字体颜色及高亮

文章介绍了如何利用AutoHotKey软件为TyporaMarkdown编辑器创建自定义快捷键,如Alt+1高亮文本,Alt+2红色,Alt+3绿色。用户需先在Typora设置中开启高亮语法,然后编写并运行AutoHotKey脚本来实现这些功能。脚本包括添加高亮和设置字体颜色的逻辑,并在选中文本后使用快捷键生效或撤销效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要通过AutoHotKey实现,该软件可以接管键盘的快捷键,通过自定义函数,实现特定快捷键触发功能。

AutoHotkey软件下载地址

下载安装完软件之后,首先要在Typora的文件/偏好/Markdown下开启高亮语法,以使“==str==”被识别显示为高亮str

接下来准备AutoHotKey脚本。新建一个.ahk文件,用记事本打开:

复制粘贴下述代码(在这种脚本语言中分号表示注释):

#IfWinActive ahk_exe Typora.exe
{
    ; Alt+1 高亮
    !1::addHighlight()

    ; Alt+2 红色
    !2::addFontColor("red")

    ; Alt+3 绿色
    !3::addFontColor("green")
}

; 字体颜色设置
addFontColor(color){
    clipboard := "" ; 清空剪切板
    Send {ctrl down}x{ctrl up} ; 复制
    tmp := Substr(clipboard, 1, 5)
    If(tmp != "<font"){
        SendInput {TEXT}<font color='%color%'>
        SendInput {ctrl down}v{ctrl up} ; 粘贴
        If(clipboard = ""){
            SendInput {TEXT}</font> ; Typora在这不会自动补充
        }else{
            Needle := "$"
            StringGetPos, pos, clipboard, %Needle%, L2 ; 应对行内联公式
            if (pos >= 0){
                SendInput {TEXT}</font> ; 有内联公式时也不会自动补充
            }else{SendInput {TEXT}</ ; Typora中自动补全标签
            }
        }
    }else{
        clipboard := StrSplit(clipboard, ">")[2]
        clipboard := StrSplit(clipboard, "<")[1]
        SendInput {ctrl down}v{ctrl up} ; 粘贴
    }
}

; 字体高亮
addHighlight(){
    clipboard := "" ; 清空剪切板
    Send {ctrl down}x{ctrl up} ; 复制
    tmp := Substr(clipboard, 1, 2) ; (sourcestr,start(from 1)[,length])
    If(tmp != "=="){
        SendInput {TEXT}==
        SendInput {ctrl down}v{ctrl up} ; 粘贴
        SendInput {TEXT}== ; Typora 在这不会自动补充
    }else{
        clipboard := Trim(clipboard,"==")
        SendInput {ctrl down}v{ctrl up} ; 粘贴
    }
}

保存关闭后,双击打开,状态栏出现绿色图标即成功

接下来打开Typora,直接使用快捷键即可。本脚本可实现Alt+1高亮文本、Alt+2红色、Alt+3绿色。选中文本后使用快捷键生效,对已生效的文本,选中后使用快捷键撤销效果,与Typora本身的一些快捷键一致。

附AutoHotKey官方文档地址,本文中的脚本功能通过查阅该文档实现。AutoHotKey官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值