做了这几步, Mac 和 Windows 都能更好地满足我的需求了。

2022-10-17 17:39:33 +08:00
 louchenabc

今天在 V2EX 看到下面两个帖子:

这两个帖子中提到的使用困扰主要是在快捷键方面,刚好我前阵子写了一篇文章:我如何流畅地切换使用 Mac 和 Windows ,也跟快捷键有关,所以在这里分享一下。

原文中的设置有些变动,所以在这里重新发一遍,下面是最新的设置方法。

一套快捷键兼容 Mac 和 Windows

有一些方案是修改系统的键位,比如在 Windows 下将 Win 键与 Ctrl 键调换,这种方案对系统侵入性较强,所以个人不是很喜欢,我采用的方案是增加新的快捷键使其匹配另一个系统的功能,令一套快捷键兼容多个系统

Mac 上的设置

为方便对照,先回顾下 Mac 键盘与 Windows 键盘中两个修饰键位置的对应关系:Opt -> WinCmd -> Alt

Mac 上使用 RaycastKarabiner-Elements系统设置来配置快捷键,以下设置在 Windows 上都有对应的功能。

Raycast

快捷键 功能
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 窗口

设置原因:

Karabiner-Elements

快捷键 功能
Ctrl/RCmd + H Move Left
Ctrl/RCmd + J Move Down
Ctrl/RCmd + K Move Up
Ctrl/RCmd + L Move Right

设置原因:

设置建议:

系统设置

Mac 中可使用系统设置来配置应用内快捷键,这部分设置其实可有可无。

在 Keyboard -> App Shortcuts 中配置 Chrome 快捷键,配置时注意功能名称需与菜单名称(不同版本的名称可能不一样)保持完全一致;

快捷键 功能名称
Cmd + D Open Location…
Cmd + L Bookmark This Page…

设置原因:

Windows 上的设置

Win 上使用 AutoHotKey 来进行快捷键设置,对应的功能与上面提到的 Mac 设置一致,另外将常用的 Mac 快捷键操作设置到 Win 中。

AutoHotKey

快捷键 功能
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 等等,都用一用,把他们的优点结合起来未尝不可。

3130 次点击
所在节点    程序员
9 条回复
todorov
2022-10-17 18:03:22 +08:00
V 站程序员太多,不少人的思考方式必须要用 if/else ,或者 0 和 1 才能表达。
其实大可不必,双开,三开,多开,哪个方便用哪个呗。此路不通绕着走。
archean
2022-10-17 19:01:08 +08:00
楼主有心了,感谢你。
Harry
2022-10-17 22:27:20 +08:00
"Mac 、Windows 、Linux 各有优劣,比如:Mac 美观、有不少独占优秀软件,Windows 多面手,Linux 原生 docker 等等,都用一用,把他们的优点结合起来未尝不可。"

这一句是值得称赞的。说到底我们都是用计算机系统进行创造和解决问题,是我们的工具。我们应该是不同工具的不同特性,去解决不同场景下的问题。好的地方多用,蹩脚的地方少用(还其他工具)这个才是我们应该有的态度。
felixcode
2022-10-17 22:42:15 +08:00
说的对,用个系统真没必要有什么优越感。
KJR5OR04CnCiWf02
2022-10-17 22:45:31 +08:00
想起来,这个世界技术上的进步往往是偏执狂推动的
Veneris
2022-10-17 22:49:42 +08:00
想知道 mac 好用的窗口切换有什么 app ,实在受不了一切换一堆已经关了很久只留了个后台的图标混在里面
kylix
2022-10-17 22:53:18 +08:00
感谢 OP 这么详细的分享
sunrisewestern
2022-10-17 22:57:06 +08:00
zhuweiyou
2022-10-18 18:27:24 +08:00
我是 powertoys 键映射

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/887577

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX