Typora 文字快捷修改颜色

Typora 设置字体上色快捷键

1. 安装AutoHotKey

AutoHotkey 是一种 免费开源 的微软Windows自定义脚本语言,最初旨在 提供简单的键盘快捷键或热键快速创建宏和软件自动化

基于成熟的做法,本脚本也采用 AutoHotKey 实现。 AutoHotkey 的使用步骤如下:

  1. 下载软件:AutoHotKey

  2. 安装软件

  3. 创建脚本:新建后缀 .ahk 文件,然后编辑文件,并编写代码。

  4. 使用 AutoHotkey 编译代码变成 exe 可执行文件,运行。

下面按照该步骤介绍如何部署本脚本。

2. 部署代码

参考网上其它代码,本脚本进行了改进,主要是不再使用 alt+1~7 来实现选色,而是通过 单按键循环的方式切换文本颜色 ,极大的 提高了效率 。所有代码如下:

; Typora
; 快捷增加字体颜色

AutoTrim, Off	; 关闭忽略空格和tab
#IfWinActive ahk_exe Typora.exe	; 设定在Typora软件被选中时检测
{
	
    ; alt+1 循环选色,行内文字
    !1::timerHandler(1)
	; alt+` 循环选色,段落居中
	!`::timerHandler(2)
	
	; alt+2 强调
    !2::addEnhance()
	; alt+3 强调
    !3::addEnhance2()
	; alt+4 反向强调
    !4::timerHandler(3)


	; alt+w 添加版权说明
	!w::addCopyRight()
	
	!q::addPicCenter()
}

addPicCenter(){
	SendInput {#}pic_center
}

addEnhance(){
	clipboard := "" ; 清空剪切板
	Send ^c 		; 复制
	InputText = %clipboard%
	clipboard = %A_Space%``%InputText%``%A_Space%
	Sleep 50
	Send ^v
}

addEnhance2(){
	clipboard := "" ; 清空剪切板
	Send ^c 		; 复制
	InputText = %clipboard%
	clipboard = %A_Space%==%InputText%==%A_Space%
	Sleep 50
	Send ^v
}

addReverse(){
	clipboard := "" ; 清空剪切板
	Send ^c 		; 复制
	InputText = %clipboard%
	clipboard = %A_Space%<b><span style='color:white;background:black;font-size:24px'>%InputText%</span></b>%A_Space%
	Sleep 50
	Send ^v
}

; 添加版权说明
addCopyRight(){
    clipboard := "" ; 清空剪切板
	; 分割线
	SendInput ---	
	Send {Enter}
	; 版权说明
	clipboard = <center><b> <font face='楷体' size=4, color=red> <br/> 部分图片来源网络,如有侵权请联系我删除。<br/> 如有疑问或错误,欢迎和我私信交流指正。<br/> 版权所有,未经授权,请勿转载! <br/> </font> <font face='Times' size=3, color=gray> Copyright © %A_Year%.%A_Mon% by Mr.Idleman.&ensp;All rights reserved. </font> </center></b> <br/> 
	Send ^v
	Sleep 100
	Send `n
	Sleep 100
	; 分割线
	SendInput ---	
	Sleep 200
	Send {Enter}
}

; 每次按下刷新定时任务,如果松下alt超过一定时间就退出
timerHandler(flag){
	SetTimer, Check, -1000 ; 在 1000 毫秒后检测.
	addFontColor(flag)
}
Check:
	if(!GetKeyState("Alt", "P")){
		addFontColor(0)
	}
	else{
		SetTimer, Check, -1000
	}

; 快捷增加字体颜色
addFontColor(flag){
	; 设置循环选色数量和颜色类型
	color_num = 9
	colors := ["black", "red", "SEAGREEN", "blue", "DODGERBLUE", "DARKORANGE", "cyan", "purple", "ORCHID"]
	static index := 0
	static InputText := -1
	
	if (!flag){
		index := 0
		clipboard := "" ; 清空剪切板
		InputText = -1
		
		send !
		Sleep 50
		return
	}
	else{
		index += 1
		if (InputText == -1){
			clipboard := "" ; 清空剪切板
			Send ^c 		; 复制
			InputText = %clipboard%
		}
		else{
			Send ^z 		; 撤销
			if(flag==2 || flag==3){
				Send ^z 		; 多撤销一次,取消回车
			}
		}	
	}
	
	
	; 颜色赋值
	color := colors[index]
	if(index==color_num){
		index = 0
	}
	Sleep 50
	if (flag==1){
		clipboard = %A_Space%<b><font color='%color%' size=3 face="">%InputText%</font></b>%A_Space% ; 组合赋值到剪切板
	}
	else if(flag==2){	
		clipboard = %A_Space%<center> <b> <font color='%color%' size=5 face=""> %InputText% </font> </b> </center>%A_Space%<br\>
	}
	else if(flag==3){	
		clipboard = %A_Space%<center> <b> <span style='color:white;background:%color%;font-size:24px'>%InputText%</span> </b> </center>%A_Space%<br\>
	}
	SendInput ^v	; 粘贴
	Sleep 50
	if (flag==2 || flag==3){	; 为了居中显示能够自动渲染,增加一个回车
		SendInput `n
	}
}

先具体介绍如何部署代码:

新建 Typora_color.ahk 文件,复制代码并保存文件:

image-20230428211649175

在桌面右键选择 Compile Script ,生成 exe 文件:

image-20230428211041417

3. 使用脚本

双击运行 exe 文件,当看到任务栏出现 ahk 图标时说明已经运行:

image-20230428211232553

打开Typora,输入快捷键即可使用。

快捷键Alt+`文本段落居中并改变颜色每按下一次变换一种颜色

可以看出,我们按下Alt+`的同时,程序自动输入了包括复制粘贴在内的多个快捷键,帮我们修改了输入。

动画

快捷键Alt+1文本直接改变颜色每按下一次变换一种颜色

动画

快捷键Alt+2选中的文本 引用

动画

快捷键Alt+3选中的文本 强调

动画

快捷键Alt+w添加版权说明

动画

写在最后

上面的脚本热键还可以修改,换色的操作大概逻辑如下:

定时内按下
定时内未按下
等待第一次按下
直接换色
继续检测按键
执行换色
退出换色

所有热键都可以自己修改,也可以在此基础上增加自己的功能,详情请看参考文献内的 AutoHotkey语法说明概念和约定 | AutoHotkey

参考文献

1:AutoHotkey - Wikipedia

2:Typora修改字体颜色快捷键设置_typora颜色快捷键_RayBreslin的博客-CSDN博客

3:typora里面如何快捷改变字体颜色? - 知乎

4:概念和约定 | AutoHotkey



如有疑问或错误,欢迎和我私信交流指正。
版权所有,未经授权,请勿转载!
Copyright © 2023.05 by Mr.Idleman. All rights reserved.


猜你喜欢

转载自blog.csdn.net/qq_42059060/article/details/130482812