在公司用Mac,在家用Windows,需要 統一快捷鍵體驗。
網上搜索之後,發現了一個開源的軟件AutoHotKey。
簡單使用之後,又發現這個東西可以針對不同軟件進行特别的按鍵映射,真的好厲害!
AutoHotkey
AutoHotkey官網
建議安裝1.1.33.11的版本,而不是當前最新的1.1.34.01版本,原因之後會說。
學習基礎語法建議直接看AutoHotkey 按鍵映射極簡教程,簡單扼要的還有這個,初學者向導。
AU3_Spy.exe 提供的一個Windows程序ahk_class抓取的工具,後面腳本裡程序的ahk_class就是通過這個軟件抓取的,打開就知道怎麼用了。
獲取鍵盤映射新建一個名為鍵盤鈎子.ahk的文件,運行以下代碼
SC02B::send,{SC02B}
return
在任務欄中雙擊鍵盤鈎子.ahk,會打開一個頁面,選擇視圖>按鍵記錄和腳本信息(Ctrl k),然後狂按你需要的那個鍵,按F5刷新,就能看見他的VK和SC值了
獲取應用名稱windwos鍵 1 會複制當前應用的 ahk_class到剪貼闆
#1::WinGetClass, Clipboard, A
;windwos鍵 1 會複制當前應用的 ahk_class到剪貼闆
然後就可以針對不同的窗口設定快捷鍵了
君匡魔改方案禁用單擊Alt對我而言,首先便是禁用單擊Alt,免得無意識敲擊會導緻焦點移動到上下文菜單欄,很是打斷思路的。
Alt::Return
至于為什麼我要求安裝1.1.33.11的版本,原因就是在這裡了。
經過在論壇上的讨論,我們發現最近兩個版本對這條語句的支持呈現出極大的區别。
詳細的讨論過程:論壇讨論。
快捷鍵映射快捷鍵映射方案如下:
$!c::
Send {Ctrl Down}{c}{Ctrl Up}
Return
$!x::
Send {Ctrl Down}{x}{Ctrl Up}
Return
$!v::
Send {Ctrl Down}{v}{Ctrl Up}
Return
$!a::
Send {Ctrl Down}{a}{Ctrl Up}
Return
$!s::
Send {Ctrl Down}{s}{Ctrl Up}
Return
$!w::
Send {Ctrl Down}{w}{Ctrl Up}
Return
$!z::
Send {Ctrl Down}{z}{Ctrl Up}
Return
$!f::
Send {Ctrl Down}{f}{Ctrl Up}
Return
$!q::
Send {Alt Down}{F4}{Alt Up}
Return
$!Backspace::
Send {Delete}
Return
$!Left::
Send {Home}
Return
$!Right::
Send {End}
Return
$! Left::
Send {Home}
Return
$! Right::
Send {End}
Return
一些特别的映射就沒有寫出來。
鼠标切換桌面鼠标切換桌面:
按住鼠标中鍵之後,用鼠标左右按鍵切換桌面
~MButton & XButton1::send #^{Right}
return
~MButton & XButton2::send #^{left}
return
~MButton & RButton::send #^{Right}
return
~MButton & LButton::send #^{left}
return
把Windows下的CapsLock鍵調整為和Mac一緻,即:
短按:中英文切換
長按:大小寫切換
;管理員運行
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%"
ExitApp
}
;無環境變量
#NoEnv
;高進程
Process Priority,High
;一直關閉 Capslock
SetCapsLockState, AlwaysOff
SetStoreCapslockMode, off
Capslock::
KeyWait, CapsLock
If (A_TimeSinceThisHotkey > 300)
SetTimer, mainp, -1
Else
Send ^{Space}
Return
mainp:
Send, {CapsLock}
Return
本質上是映射成為ctrl 空格,所以才可以完成中英文切換。
後來發現用這個方式沒有辦法将已經敲入的内容打到文本中,由于我是使用的手心輸入法,所以我又改成為單按左側Shfit就可以起效果 了。
If (A_TimeSinceThisHotkey > 700)
SetTimer, mainp, -1
Else
Send {LShift}
對于記事本
#IfWinActive ahk_exe Notepad.exe
{
!q::
MsgBox, You pressed Alt q in Notepad.
Return
}
對于windows資源管理器
#IfWinActive ahk_class CabinetWClass
{
^!q::
MsgBox, You pressed Ctrl Alt q CabinetWClass
Return
![::Send !{Left}
Return
!]::Send !{Right}
Return
}
對于谷歌浏覽器
#IfWinActive ahk_exe chrome.exe
{
![::Send !{Left}
Return
!]::Send !{Right}
Return
}
最後一定要加一條單獨的語句,結束個别窗口内的映射
#IfWinActive
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!