最近1年半的时间,我主要都在 Windows平台上面使用Emacs。老实说,Windows对Emacs并不友好,但是并不妨碍正常使用。另外,对于很多使用Windows的朋友而言,把Linux或者Mac作为主要的开发环境仍然有一些困难。原因很多,比如Mac贵,Linux折腾,工作中需要使用Windows等等。
在学习Emacs的过程中,我尝试过Cygwin, Mysys2, Mingw-64等方案,甚至还尝试过在VirtualBox里面安装一个Arch,然后通过共享文件夹的方式来操作Windows上面的项目。
如果电脑配置足够好,在Arch虚拟机里面跑Emacs体验是最好的。但是如果你的项目不能完全摆脱Windows的依赖(比如使用Cocos Creator开发游戏,该工具没有Linux版),那么这种做法就会导致来回在Windows和虚拟机之间进行切换,影响使用体验。
这里主要分享一下在Windows上面简单配置一个相对好用的Emacs的步骤。
- 不要再折腾 cygwin和mysys2了,也不要折腾使用 mysys2去从源码编译一个Emacs。网上已经有人把预编译好的Emacs提供给你了,直接拿来主义即可。(抽时间尝试了一下mysys2编译,pacman工具安装软件各种不顺利)
- 使用上面的链接下载一个支持 pdump的Emacs版本,同时下载好 emax.7z
- 按照上面的提示说明,把 emax64-pdumper-bin-20180619.7z 解压到你的C盘
双击里面的 `addpm.exe` 文件来安装 Emacs:
- 把下载好的 emax.7z 解压到你的 HOME 目录, 比如: C:\Users\ <username>\AppData\Roaming
- 此时你打开 Emacs,会得到一个初始配置。如果你想使用Spacemacs的话,可以把 C:\Users<username>\AppData\Roaming 下的 .emacs文件删除,然后新使用以下命令来安装 Spacemacs:
PS: 这里使用我自己的配置做为演示。
- 由于我的配置使用 Github 来管理,所以首先让我们安装 git-for-windows.
https://git-scm.com/download/win
通过上面的链接下载完 git-for-windows后,配置一下 HOME 变量,指向 C:\Users\ <username>\AppData\Roaming
接下来,让我们打开命令提示符,做一些设置。
git config --global core.autocrlf false
git config --global user.email [email protected] (替换成你自己的)
git config --global user.name zilongshanren (替换成你之前的)
- 此时,我们就可以打开命令提示符,修改当前目录到 C:\Users\ <username>\AppData\Roaming
然后运行下面两个命令来安装 Spacemacs 和 我的个人配置:
;;如果提示 .emacs.d 已经存在,需要先删除 .emacs.d 文件夹
git clone https://github.com/syl20bnr/spacemacs .emacs.d
git clone https://github.com/zilongshanren/spacemacs-private.git .spacemacs.d
接下来,切换 Spacemacs 到 develop 分支(因为master分支很多问题)
cd .emacs.d
git checkout develop
- 安装 Source Code Pro 和 ripgrep 搜索工具
字体下载 Source Code Pro regular 双击安装即可,rg.exe 可以放到 C:\Users\ \<username>\AppData\Roaming\emax\bin\
目录 下面
至此,一个相对好用的 Windows的Emacs环境就搭好了。 可以放心使用 Aspell, helm-ag/rg
推荐再安装 Everything, 我的配置已经集成了 cousel-locate
并且支持中文。
几点说明:
-
magit在windows平台上面的性能不太好,首次
magit-status
打开一个比较大的 git 项目,可能要2-4s时间,使用 git-for-windows本身对 magit性能有一定的优化,但是还是比较卡。目前没有什么好办法,magit的作者在研究libgit2,据说性能可以得到比较大的提升。 -
我目前的配置在intel i7上面是4-5s的启动时间,而我的 amd 2600x 需要10s时间。使用pdumper ,启动时间可以节省到2s,但是pdumper在我这边有一些bug。比如 magit在commit的时候,没办法完成commit,需要在使用 pdumper启动Emacs后,手动调用
SPC f e R
来刷新一下配置。如果有pdumper使用经验的朋友,欢迎分享一下经验。 -
对于 org-mode 的配置同步,推荐使用坚果云,我目前的配置是放在
f:\org-notes
,把这个目录设置为 坚果云的同步盘即可,Windows和Mac都可以用(Mac下面的目录 是~/org-notes
) 。
4。 为了使用更爽,避免小拇指受伤,推荐把 caps lock 键改成 ctrl 键,另外,为了方便你的按键跟mac保持一致,推荐以下改键方案:
这套改键方案配合我的配置,可以实现 win+mac的按键体验一致。
附: sharpkeys 安装地址: GitHub - randyrants/sharpkeys: SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key.