用ahk的capslock实现中文标点符号的方案

我看到大家都讨论过输入法的问题.

求Windows端能舒服地输入英文符号的办法
这才是更舒适的键盘快捷键按键布局:Capslock数字键工具

我深受启发, 就写了一套ahk方案

中文输入法下, 默认英文符号, 可以通过按 capslock+符号 的方式, 输入常见中文标点符号


#NoEnv
#MaxHotkeysPerInterval 2000
#SingleInstance force
setcapslockstate, alwaysoff      ;永久关闭大写锁定状态
setstorecapslockmode,off
return

; 按shift恢复大写锁定的功能
capslock & lshift::capslock
return

+capslock::capslock
return


; 中文逗号
capslock & ,::
	send  ,
return

;中文句号
capslock & .::
	send  。
return

;不需要按shift, \ 变成顿号
capslock & \::
	send  、
return

;分号变冒号
capslock & `;::
	send  :
return

; /变问号
capslock & /::
	send  ?
return

capslock & (::
	send  (
return

capslock & )::
	send  )
return

; 公文里的六角括号
capslock & [::
	send  〔
return

capslock & ]::
	send  〕
return

capslock & "::
	send  “”
	send {left}
return


这样的话, 基本上常见的 ,。?:()〔〕就可以输出了,目前唯一的问题是分号被占用了.

2 Likes
; ;对应半角分号,Ctrl + ;对应半角冒号
~CapsLock & `;:: ;分号前面要加上 ` 作为转义符,否则后面部分会被认为是注释
if GetKeyState("Ctrl") = 0 ;如果 Ctrl 处于松开状态
	SendInput {Text}; 
else
	SendInput {Text}:
Return

还可以用 GetKeyState("Ctrl") 实现更多修饰键的组合……

另外,在 CapsLock 前面加上 ~
例如:

~CapsLock & j:: Send {Blind}{Left}

这样单独按下 CapsLock 本身的功能就不会受限,
依然具有大写锁定开关的功能……

4 Likes

另外也要感谢您在另外一个帖子关于 Directory Opus 软件使用的回复
Directory Opus 的中文帮助内容似乎很少,
很多时候只能通过查阅官网英文帮助并使用翻译软件来自定义更多功能。

如果可以,希望和您讨论更多关于 Directory Opus 的使用技巧!

可惜這個方案只能用在windows桌面系統。

是的, Dopus的中文资料很少.

咱们互相学习交流吧.

双击符号键,输入中文or英文符号,这个思路有什么坑吗?(需要连续输入的符号键,还区分中文的场景,这个好像不太多)

如果发现""里面是中文,就吧""自动改成中文的双引号“”, 如果发现“”里面是英文,就把“”改成英文的双引号""。怎样?