[转]Windows 中开启全局 Emacs 快捷键

我喜欢用 Emacs,其中最让我觉得顺手的功能就是控制光标的那几个快捷键。 把键盘上的 CapsLock 映射为 Control,这样小拇指按起来方便,然后用 C-a, C-b, C-n, C-p 等快捷键来控制光标移动,一旦习惯养成,再难以自拔。

Mac 笔记本最令我满意的一点就是它的快捷键默认和 Emacs 是一致的。 这得益于它的 Command 键和 Ctrl 键的分离。 复制、粘贴、全选、新建标签页等功能都是用 Command 键来引导, 而文字控制都是通过 Ctrl 键。大小拇指一起飞舞,体验极为流畅。

然而,Command 键也有它不方便的地方: 我使用 Emacs 的时候,都习惯把空格左边的键当成 Meta来使用。 而这个键在 Mac 系统中恰恰被 Command占据了。

终于,我发现了在 Windows 中模拟 Emacs 快捷键的方法, 不仅完全实现了想要的功能,还避免了 Mac 系统中 Meta 键的尴尬。

需要的仅仅是:AHK (AutoHotKey)

具体的 AHK 脚本参考这里:shiman/dotfiles。 安装好 AHK 主程序后,将上边的脚本下载下来,右键,启动脚本即可。

可以支持以下功能:

  • Emacs 风格的光标移动
  • Ctrl+Space 选取文本
  • Emacs 风格的复制、粘贴
  • 可以只针对不同应用(甚至应用的不同状态)来决定是否启用(比如对 mintty 就选择不启用)

也可以把它加到系统启动项:

  1. Win + R,输入 shell:startup , 回车。
  2. 把需要开机启动的脚本右键,复制。
  3. 在打开的文件夹中点击右键,粘贴快捷方式。
5 个赞

lz大概是没用过mac里的Karabiner-Element吧

1 个赞

我在Windows上也用ahk模拟了一套Emacs键位

1 个赞

感谢分享,Windows系统全局使用Emacs键位,真的太爽了。

更新:AHK 定制比Xkeymacs方便,可以把Windows用的和linux一样爽

弱弱的问一下,各位大神为什么要让win的快捷键往emacs上靠?我是新手,我想问下这样做有什么好处,其实我一直有个想法,把emacs的快捷键搞成win的,这样用起来能统一,Linux目前主流的几个桌面也都往win上靠了。我想问下各位大神,我如果这样做了,会有什么弊端。

win的操作是鼠标为主,快捷键是辅助,键位也围绕辅助鼠标来设计。

emacs用键盘控制一切,鼠标可有可无。

习惯问题,主要是 Emacs 有些键位和 Win 风格的冲突比较大,你想要自己定制一套 Emacs 配置兼容 Win 键位的话不太容易。

把emacs快捷键改成win的可不太容易,主流linux桌面往win上靠,是指的那个桌面?

发行版的比如ubuntu,自带的桌面我忘了叫啥了,现在都是c-c c-v复制粘贴了,国产机更不用说了,整个一个windows主题。

用 cua-mode 可破(

这个真是太给力了,因为要在 virtualbox windows 虚拟机中用钉钉,有了这个在钉钉中输 入也就没那么痛苦了。

为了解决windows虚拟机与linux宿主机间剪切板常常失灵的问题,我还在跑了一套通过本地 网络共享剪切板的应用:

https://github.com/iayanpahwa/anywheredoor

确实不错, 正在使用