
今天在 V2EX 看到下面两个帖子:
这两个帖子中提到的使用困扰主要是在快捷键方面,刚好我前阵子写了一篇文章:我如何流畅地切换使用 Mac 和 Windows ,也跟快捷键有关,所以在这里分享一下。
原文中的设置有些变动,所以在这里重新发一遍,下面是最新的设置方法。
有一些方案是修改系统的键位,比如在 Windows 下将 Win 键与 Ctrl 键调换,这种方案对系统侵入性较强,所以个人不是很喜欢,我采用的方案是增加新的快捷键使其匹配另一个系统的功能,令一套快捷键兼容多个系统。
为方便对照,先回顾下 Mac 键盘与 Windows 键盘中两个修饰键位置的对应关系:Opt -> Win、Cmd -> Alt 。
Mac 上使用 Raycast、Karabiner-Elements 和系统设置来配置快捷键,以下设置在 Windows 上都有对应的功能。
| 快捷键 | 功能 |
|---|---|
| Opt + E | 打开 Finder |
| Opt + Tab | 打开 Mission Control |
| Ctrl + Shift + Left | Previous Display |
| Ctrl + Shift + Right | Next Display |
| Ctrl + Cmd + Z | 打开 /关闭 Telegram 窗口 |
| Ctrl + Cmd + C | 打开 /关闭 Chrome 窗口 |
| Ctrl + Cmd + X | 打开 /关闭 VS Code 窗口 |
设置原因:
Ctrl + Cmd + 字母 打开窗口的设置,方便打开高频使用的应用。| 快捷键 | 功能 |
|---|---|
| Ctrl/RCmd + H | Move Left |
| Ctrl/RCmd + J | Move Down |
| Ctrl/RCmd + K | Move Up |
| Ctrl/RCmd + L | Move Right |
设置原因:
设置建议:
LCmd 触发更为合适,具体哪种合适也取决于使用的是什么键盘,比如使用 Magic Keyboard 时使用 Cmd 或 fn 更加方便,使用键程较长的键盘时用 Ctrl 也很方便。Mac 中可使用系统设置来配置应用内快捷键,这部分设置其实可有可无。
在 Keyboard -> App Shortcuts 中配置 Chrome 快捷键,配置时注意功能名称需与菜单名称(不同版本的名称可能不一样)保持完全一致;
| 快捷键 | 功能名称 |
|---|---|
| Cmd + D | Open Location… |
| Cmd + L | Bookmark This Page… |
设置原因:
Alt + D 一致,方便单手操作的同时也避免和 Cmd + H/J/K/L 快捷键冲突。Win 上使用 AutoHotKey 来进行快捷键设置,对应的功能与上面提到的 Mac 设置一致,另外将常用的 Mac 快捷键操作设置到 Win 中。
| 快捷键 | 功能 |
|---|---|
| Alt + C | 复制 |
| Alt + X | 剪切 |
| Alt + V | 粘贴 |
| Alt + A | 全选 |
| Alt + W | 关闭窗口 |
| Alt + Z | 撤销 |
| Alt + F | 搜索 |
| Alt + Q | 退出 |
| Alt + Left | Home |
| Alt + Right | End |
| Alt + Shift + [ | 「 |
| Alt + Shift + ] | 」 |
| Alt + [ (资源管理器、chrome ) | 返回 |
| Alt + ] (资源管理器、chrome ) | 前进 |
除了 Mac 的常用快捷键外,还增加了一个鼠标的组合按键用于切换桌面。
| 快捷键 | 功能 |
|---|---|
| 按住鼠标左键 + 鼠标前进键 | 向左移动桌面 |
| 按住鼠标左键 + 鼠标后退键 | 向右移动桌面 |
设置原因:
部分配置:
; ------- mac ------- $!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 $!Left:: Send {Home} Return $!Right:: Send {End} Return $!+Left:: Send +{Home} Return $!+Right:: Send +{End} Return ; ----- display ------ ~LButton & XButton1::send #^{Right} return ~LButton & XButton2::send #^{left} return ;~MButton & RButton::send #^{Right} ;return ;~MButton & LButton::send #^{left} ;return ; ------ vim ----- !k:: ;; !->alt k->字母键 k Send {Up} ;;输入 上 键 return !j:: Send {Down} return !h:: Send {Left} return !l:: Send {Right} return ; // 中文直角引号 !+[::send,{U+300C} ;// alt + shift + [ 转换为「 !+]::send,{U+300D} ;// alt + shift + ] 转换为 」 ; // 音量调节 !-::send,{Volume_Down} !=::send,{Volume_Up} ; ----- explorer --------- #IfWinActive ahk_class CabinetWClass { ![::Send !{Left} Return !]::Send !{Right} Return } ; ----- chrome --------- #IfWinActive ahk_exe chrome.exe { ![::Send !{Left} Return !]::Send !{Right} Return !y::Send ^{h} Return !t::Send ^{t} Return !+t::Send ^+{t} Return !r::Send ^{r} Return } #IfWinActive ahk_exe Code.exe { ![::Send !{Left} Return !]::Send !{Right} Return !p::Send ^{p} Return !+p::Send ^+{p} return } #IfWinActive ahk_exe Obsidian.exe { ![::Send !{Left} Return !]::Send !{Right} Return !p::Send ^{p} Return !e::Send ^{e} Return !#e::Send ^!{e} Return !+d::Send ^+{d} Return !o::Send ^{o} Return } #IfWinActive ahk_exe idea64.exe { ![::Send ^!{Left} Return !]::Send ^!{Right} Return !e::Send ^{e} Return !o::Send ^{n} Return !+o::Send ^+{n} Return } ; ----- telegram --------- #IfWinActive ahk_exe Telegram.exe { ^!z::Send {Ctrl Down}{w}{Ctrl Up} Return } #IfWinActive ahk_exe WeChat.exe { !w::Send {Alt Down}{F4}{Alt Up} Return } #IfWinActive ^!z::Run "C:\Users\who\AppData\Roaming\Telegram Desktop\Telegram.exe" Return Mac 、Windows 、Linux 各有优劣,比如:Mac 美观、有不少独占优秀软件,Windows 多面手,Linux 原生 docker 等等,都用一用,把他们的优点结合起来未尝不可。
1 todorov 2022-10-17 18:03:22 +08:00 V 站程序员太多,不少人的思考方式必须要用 if/else ,或者 0 和 1 才能表达。 其实大可不必,双开,三开,多开,哪个方便用哪个呗。此路不通绕着走。 |
2 archean 2022-10-17 19:01:08 +08:00 楼主有心了,感谢你。 |
3 Harry 2022-10-17 22:27:20 +08:00 "Mac 、Windows 、Linux 各有优劣,比如:Mac 美观、有不少独占优秀软件,Windows 多面手,Linux 原生 docker 等等,都用一用,把他们的优点结合起来未尝不可。" 这一句是值得称赞的。说到底我们都是用计算机系统进行创造和解决问题,是我们的工具。我们应该是不同工具的不同特性,去解决不同场景下的问题。好的地方多用,蹩脚的地方少用(还其他工具)这个才是我们应该有的态度。 |
4 felixcode 2022-10-17 22:42:15 +08:00 说的对,用个系统真没必要有什么优越感。 |
5 KJR5OR04CnCiWf02 2022-10-17 22:45:31 +08:00 想起来,这个世界技术上的进步往往是偏执狂推动的 |
6 Veneris 2022-10-17 22:49:42 +08:00 via iPhone 想知道 mac 好用的窗口切换有什么 app ,实在受不了一切换一堆已经关了很久只留了个后台的图标混在里面 |
7 kylix 2022-10-17 22:53:18 +08:00 感谢 OP 这么详细的分享 |
8 sunrisewestern 2022-10-17 22:57:06 +08:00 |
9 zhuweiyou 2022-10-18 18:27:24 +08:00 我是 powertoys 键映射 |