楼主对不起,我回复的不及时,看贴也不仔细,没有仔细看你的主题。从你的回复看出来你很困惑,所以老司机要带一带你233333
我个人推荐用MSYS2作为解决方案,我认为这是现阶段最好的解决方案,后面分析。
1. Git用Windows版的,在/etc/pacman.conf
加入如下内容安装这个版本的Git
[git-for-windows]
# SigLevel = Optional TrustedOnly
SigLevel = Never
Server = https://dl.bintray.com/git-for-windows/pacman/$arch
2. Emacs可以用MSYS2仓库里的,也可以自己编译
现在官方有编译指南,是基于MSYS2的,虽然是针对64位的,但也适用于32位。这个指南是在我的编译指南的基础上修改的,现有的指南都是基于我最早的那个指南。有中文版,但有点过时。
3. MSYS2的包管理器是pacman
我见识短,只用过Debian/Ubuntu系列的apt,感觉比那个好多啦。
4. 收发邮件推荐用Mew
5. 用Tramp的正确姿势
Windows平台在nix系统上运行shell,需要在连接前设置explicit-shell-file-name
为nix下shell的路径(来源),比如(setq explicit-shell-file-name "/bin/bash")
。或者用类似下面的代码来实现
(let ((default-directory "/sshx:bandwagon:/root/")
(explicit-shell-file-name "/bin/bash"))
(shell (generate-new-buffer-name "*Bandwagon*")))
这样可以不影响本地的设置。
6. 配置字体
因为Emacs的bug,在Windows下用Emacs必须配置字体,否则会卡。配置方法可以看我之前写的Emacs字体设置。
优势
- 不只针对Emacs,而是模拟了一个*NIX世界。
- 支持的Windows版本广(XP勉强支持,之后的Windows都支持),不强制Win 10。
- 依托社区而非依托商业公司。
- 包管理好用。
- 植根于Arch Linux的「少即是好」(KISS)的理念,整个系统精简,如果你用过Arch Linux上手就更快了。
劣势
- 资源占用有点大,大约1 G以上的硬盘空间,但比虚拟机小。
- 体验肯定比不上*NIX世界,说多了都是泪。具体分为以下的几条。
- 因为Windows的路径有盘符(
C:
),而且习惯上使用\
作为路径的分隔,和UNIX世界的习惯/bin/bash
不一样,导致打开文件和运行程序出错,更不用说Emacs中有UNIX的路径了。 - Windows的字体渲染比Linux世界和Mac系列要差很多,而且,因为Windows下Emacs的bug,导致显示中文非常卡。
- 总体来说,Windows没有Linux的那种流畅感,可能是和用户界面的设计有关,可能和键盘重复率限制有关,可能是和程序以及操作系统的API有关,具体原因未知。
- Windows不支持TTY和PTY,只能用管道,使得在Emacs中用shell的功能受到限制,比如term就不能用。
- 很明显,Windows是没有GNU的一套软件的。MSYS2可以解决这个问题,但也存在问题。
- 命令行不能用UTF-8。
- MSYS2的一大缺点是,它的体系是两张皮,一套是Cygwin,依托DLL模拟UNIX环境;一套是MINGW,原生Windows程序。而你用MSYS2就意味着你要同时用这两套系统,复杂度增加,比如PATH设置不好就会导致程序无法启动等。Emacs的开发者Eli就很不喜欢这种方式。
- Windows的进程模式和UNIX的不同,在Windows下启动程序比较昂贵,比如用Magit使用Git时,Windows就会比Linux下慢很多,进程模式不同就是一个原因。
小技巧
- 可以用清华的源加速MSYS2的使用。具体改两个地方就行:
# /etc/pacman.d/mirrorlist.mingw64
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
# /etc/pacman.d/mirrorlist.msys
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
第一行注释对应要改的文件。
根据这个回复整理了一篇文章,Windows下使用Emacs的最佳实践。