我常用的 MacOS 的快捷键是:

  1. 编辑快捷键,包括 Ctrl+P/N/A/E ,分别代表 上一行/下一行/跳到行首/跳到行尾,还有一些全选复制粘贴之类的 Cmd+Z/A/X/C/V
  2. 窗口快捷键,包括 Cmd+T/W/Q 分别是 新标签页/关闭当前页面/关闭当前程序。

最近切换到 Windows 11 感到甚是不便,于是使用了 PowerToys 来做了键盘映射。

PowerToys

下载页面

下载安装之后,最好使用管理员模式运行。这是一个开源软件,所以一般来说不用担心它有什么不轨的行为。

开启“键盘管理器”功能,在里面做映射。

这里面有两个部分:

  • 第一个是“按键”,这个部分可以把一个键映射成另一个键,我用它来交换了 Caps LockCtrl 的位置,这是多年使用 HHKB 的习惯。
  • 第二个是“快捷键”,这个部分可以把一些组合键映射到另一个组合键。上面所说的这些 Ctrl 开头的快捷键都在这里做映射。

在“快捷键”的映射界面里,有几个选项:

  • “组合键”是指像 Emacs 那样的快捷键。例如“先按下 Ctrl+X 再按下 Ctrl+F”=打开文件。如果不打开组合键功能,就只能映射单个快捷键,类似“Ctrl+P”=上一行。
  • “精确匹配”:当按下了多余的按键的时候,映射是否起作用。比如我映射了“Ctrl+P”=上一行,那么我按下“Ctrl+P+A”的时候,精确匹配开启的情况下就不会触发这个映射。

一些难点

关于 Cmd 和 Win 键

一般我们认为,Option=Alt, Cmd=Win,而 Ctrl 是一样的。在 Windows 下, Cmd 的很多组合键被放在了 Ctrl 上,所以我们需要把 Win+ 映射到 Ctrl+ 上。

如果这样想就错了。在物理上,Alt 其实是在 Cmd 的位置,而 Win 是在 Option 的位置。那么我们可以把 Alt+<Key> 映射到 Ctrl+<Key> 上,这样不仅可以少做一个“交换 Win 和 Alt”的映射,还能绕开一个 Windows 很愚蠢的设计——“Win键的快捷键组合无法在系统层面更改。”——对我们的干扰。

对于 Vim 用户

在 Vim 中,我们会使用 Ctrl+U/D 来做 “向上翻半页/向下翻半页” 的操作。但是 Ctrl+D 已经被映射到了 <Delete>。在 Vim 里按下这个组合键的时候,会直接删除掉光标上的字符,怎么办?

只能在 Vim 的配置文件里做一个很丑陋的映射:

" 在 noremal 模式下非递归地把 <Delete> 映射成 Ctrl+D
nnoremap <Delete> <C-d>

到这里,我基本上已经把 MacOS 上的快捷键都搬过来了。唯一有一点难受的,就是 Windows 没办法把 Ctrl+C 跟“复制”分开,于是在终端里我们就没办法用 Alt+C 来做复制粘贴。好在一般的终端都支持选中文字后按鼠标右键直接复制文本,所以也没有太大的影响。

如果还有什么更好的办法解决本文中的问题,或是您需要我当前的配置文件,请留言与我交流。

Posted on 2025-09-27 17:20  tequila_sunset  阅读(25)  评论(0)    收藏  举报