tft每日頭條

 > 生活

 > windows和mac統一映射方案

windows和mac統一映射方案

生活 更新时间:2024-12-01 18:45:54
起因

在公司用Mac,在家用Windows,需要 統一快捷鍵體驗

網上搜索之後,發現了一個開源的軟件AutoHotKey。

簡單使用之後,又發現這個東西可以針對不同軟件進行特别的按鍵映射,真的好厲害!

windows和mac統一映射方案(windows和mac統一映射方案)1

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 ;一直關閉 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

感謝
  1. 感謝現在的好奇,為了能成為更好的自己。
  2. AutoHotkey官網
  3. 【AutoHotkey】我的windows和mac快捷鍵統一解決方案
  4. AutoHotKey 按鍵映射極簡教程
  5. Win下最愛效率神器:AutoHotKey
  6. Windows下Capslock鍵切換中英文
  7. 高效利用CapsLock鍵
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved