windows和mac統一映射方案(windows和mac統一映射方案)
2023-07-27 17:34:27 2
起因在公司用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的版本,原因就是在這裡了。
經過在論壇上的討論,我們發現最近兩個版本對這條語句的支持呈現出極大的區別。
1.1.33.11和更早版本是有效果的,所以建議大家安裝這個版本1.1.34.00指定的Alt按鍵並沒有被禁用1.1.34.01指定的Alt按鍵和其他的組合鍵都被禁用了詳細的討論過程:論壇討論。
快捷鍵映射快捷鍵映射方案如下:
$!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
Capslock鍵切換中英文把Windows下的CapsLock鍵調整為和Mac一致,即:
短按:中英文切換
長按:大小寫切換
;管理員運行if not A_IsAdmin{Run *RunAs "%A_ScriptFullPath%" ExitApp};無環境變量#NoEnv;高進程Process Priority,High;一直關閉 CapslockSetCapsLockState, AlwaysOff SetStoreCapslockMode, offCapslock::KeyWait, CapsLockIf (A_TimeSinceThisHotkey > 300)SetTimer, mainp, -1ElseSend ^{Space}Returnmainp:Send, {CapsLock}Return
本質上是映射成為ctrl 空格,所以才可以完成中英文切換。
後來發現用這個方式沒有辦法將已經敲入的內容打到文本中,由於我是使用的手心輸入法,所以我又改成為單按左側Shfit就可以起效果 了。
If (A_TimeSinceThisHotkey > 700)SetTimer, mainp, -1ElseSend {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 CabinetWClassReturn![::Send !{Left}Return!]::Send !{Right}Return}
對於谷歌瀏覽器
#IfWinActive ahk_exe chrome.exe{![::Send !{Left}Return!]::Send !{Right}Return}
最後一定要加一條單獨的語句,結束個別窗口內的映射
#IfWinActive
感謝感謝現在的好奇,為了能成為更好的自己。AutoHotkey官網【AutoHotkey】我的windows和mac快捷鍵統一解決方案AutoHotKey 按鍵映射極簡教程Win下最愛效率神器:AutoHotKeyWindows下Capslock鍵切換中英文高效利用CapsLock鍵,