今天在 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 1
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 6
"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 键映射
|