求Windows端能舒服地输入英文符号的办法

把所有中文符号做了下长按映射~

共计18种:
,。!《》——?;“”:「」()……、【】⇒•·~
逗号\句号\叹号\书名\破折\问号\分号\引号\冒号\直角引号\圆括号\省略号\顿号\方头括号\箭头⇒\用于列表的项目符号•\用于人名的间隔号·\中文波浪~

输入方法详见代码注释,除了破折和省略号,其他标点都是完全符合直觉的。

用的是autohotkey_L,即支持unicode版,代码如下:

;长按".>"输入中文句号。
$.::
	KeyWait, .
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp, -1
	Else
		SendInput,.
Return

mainp:
	SendInput,。
Return

;长按",<"输入中文逗号,
$,::
	KeyWait,SC033
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp2, -1
	Else
		SendInput,,
Return

mainp2:
	SendInput,{raw},
Return

;长按"/?"输入中文感叹号!(/和!差不多)
$/::
	KeyWait,/
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp3, -1
	Else
		SendInput,/
Return

mainp3:
	SendInput,{raw}!
Return

;长按"shift" + ",<" 输入中文书名号并光标其中
$<::
	KeyWait,<
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp4, -1
	Else
		SendInput,<
Return

mainp4:
	SendInput,{raw}《》
	SendInput,{left}
Return

;长按"shift" + ".>" 输入中文破折号(>掰直了不就是——嘛)
$>::
	KeyWait,>
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp5, -1
	Else
		SendInput,>
Return

mainp5:
	SendInput,{raw}——
Return

;长按"shift" + "/?" 输入中文问号?
$?::
	KeyWait,?
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp6, -1
	Else
		SendInput,?
Return

mainp6:
	SendInput,{raw}?
Return

;长按";:" 输入中文分号;
$;::
	KeyWait,;
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp7, -1
	Else
		SendInput,;
Return

mainp7:
	SendInput,{raw};
Return

;长按"shift" + ";:" 输入中文冒号:
$+;::
	KeyWait,:
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp8, -1
	Else
		SendInput,:
Return

mainp8:
	SendInput,{raw}:
Return

;长按"'"" 输入中文双引号并光标置中
$'::
	KeyWait,'
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp9, -1
	Else
		SendInput,'
Return

mainp9:
	SendInput,{raw}“”
	send,{left}
Return

;长按"shift" + "'"" 输入直角引号「」并光标置中
$+'::
	KeyWait,"
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp10, -1
	Else
		SendInput,{raw}"
Return

mainp10:
	SendInput,{raw}「」
	send,{left}
Return

;长按"[{" 输入中文圆括号()并光标置中
$[::
	KeyWait,[
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp11, -1
	Else
		SendInput,[
Return

mainp11:
	SendInput,{raw}()
	send,{left}
Return

;长按"shift" + "[{" 输入方头括号【】并光标置中
${::
	KeyWait,{
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp12, -1
	Else
		SendInput,{raw}{
Return

mainp12:
	SendInput,{raw}【】
	send,{left}
Return

;长按"]}" 输入中文省略号……
$]::
	KeyWait,]
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp13, -1
	Else
		SendInput,]
Return

mainp13:
	SendInput,{raw}……
Return

;长按"shift" + "]}" 输入⇒(}压扁了不就是⇒)
$}::
	KeyWait,}
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp14, -1
	Else
		SendInput,{raw}}
Return

mainp14:
	SendInput,{raw}⇒
Return

;长按"\|" 输入中文顿号、
$\::
	KeyWait,sc02B
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp15, -1
	Else
		SendInput,\
Return

mainp15:
	SendInput,{raw}、
Return

;长按"`~" 输入中文间隔号· 例如爱新觉罗·玄烨
$`::
	KeyWait,sc029
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp16, -1
	Else
		SendInput,{sc029}
Return

mainp16:
	SendInput,{raw}·
Return

;长按"shift" + "`~" 输入中文波浪~(有的字体下中英~长一样)
$~::
	KeyWait,~
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp17, -1
	Else
		SendInput,~
Return

mainp17:
	SendInput,{raw}~
Return


;长按"shift" + "\|" 输入项目符号• 用于列表的开头
$|::
	KeyWait,|
	If (A_TimeSinceThisHotkey > 300)
		SetTimer, mainp18, -1
	Else
		SendInput,|
Return

mainp18:
	SendInput,{raw}•
Return
7 个赞