做了这几步, Mac 和 Windows 都能更好地满足我的需求了。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
louchenabc
V2EX    程序员

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

  louchenabc 2022-10-17 17:39:33 +08:00 4032 次点击
这是一个创建于 1167 天前的主题,其中的信息可能已经有所发展或是发生改变。

今天在 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 窗口

设置原因:

  • Windows 上常用 Win + E 打开资源管理器、Win + Tab 切换窗口。
  • Ctrl + Shift + Left/Right 与 Win 下将窗口移动至显示器快捷键类似 (Opt+Shift+Left),多显示器用户建议设置。
  • Ctrl + Cmd/Alt + Z 是早期使用 QQ 留下的习惯。
  • 另外两个设置沿用了 Ctrl + Cmd + 字母 打开窗口的设置,方便打开高频使用的应用。
  • Raycast 上还有许多好用的功能,于是作为一个必装工具,快捷键设置的任务也就交给它了。

Karabiner-Elements

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

设置原因:

  • 方便 Vim 党操作。
  • 使用 Ctrl 和 RCmd (右 Cmd ) 作为触发键不与现有快捷键冲突。

设置建议:

  • 若不使用 Cmd + H 隐藏窗口,Move 操作设置的 Ctrl 触发改为 LCmd 触发更为合适,具体哪种合适也取决于使用的是什么键盘,比如使用 Magic Keyboard 时使用 Cmd 或 fn 更加方便,使用键程较长的键盘时用 Ctrl 也很方便。

系统设置

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

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

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

设置原因:

  • 将 Chrome 常用的「回到 Url 输入框」功能设置为与 Win 上的 Alt + D 一致,方便单手操作的同时也避免和 Cmd + H/J/K/L 快捷键冲突。

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 的一大优势是多桌面,将多桌面的使用习惯应用到 Windows 上。
  • 使用鼠标切换桌面本可以用罗技的 Anywhere 或 Master 系列鼠标来实现,但个人认为其过于臃肿导致软硬件不稳定,在使用体验上并不怎么样,所以才使用 AutoHotKey 来实现。

部分配置:

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

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

这一句是值得称赞的。说到底我们都是用计算机系统进行创造和解决问题,是我们的工具。我们应该是不同工具的不同特性,去解决不同场景下的问题。好的地方多用,蹩脚的地方少用(还其他工具)这个才是我们应该有的态度。
felixcode
    4
felixcode  
   2022-10-17 22:42:15 +08:00
说的对,用个系统真没必要有什么优越感。
KJR5OR04CnCiWf02
    5
KJR5OR04CnCiWf02  
   2022-10-17 22:45:31 +08:00
想起来,这个世界技术上的进步往往是偏执狂推动的
Veneris
    6
Veneris  
   2022-10-17 22:49:42 +08:00 via iPhone
想知道 mac 好用的窗口切换有什么 app ,实在受不了一切换一堆已经关了很久只留了个后台的图标混在里面
kylix
    7
kylix  
   2022-10-17 22:53:18 +08:00
感谢 OP 这么详细的分享
sunrisewestern
    8
sunrisewestern  
   2022-10-17 22:57:06 +08:00
zhuweiyou
    9
zhuweiyou  
   2022-10-18 18:27:24 +08:00
我是 powertoys 键映射
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2477 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 28ms UTC 04:20 PVG 12:20 LAX 20:20 JFK 23:20
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86