windows 上用 emacs 推荐 windows 上安装还是在 WSL2 上安装?

如题,感觉装在 windows 应该更快,但是 WSL2 感觉更省心一点,可能遇到的问题会少一些。

1 个赞

推荐用 Emacs 29 的 windows 版本,不仅是 native windows 应用,还不会闪烁。

5 个赞

自己编译还是?

我用 windows emacs 27,踩了好多坑,目前除了git、terminal之外,其他问题基本都克服了。

直接在 Windows 系统安装 msys2 然后编译 emacs 29,现在速度很快了,不闪烁,eglot 也不会卡了,还支持象素级的屏幕滚动,像你在浏览器中一样滚动。

感觉看你开发环境吧,你写windows代码,用wsl不费劲吗。反过来我觉得还是费劲。不然工具链用的会比较麻烦吧

装个子系统,windows 直接调用 wsl 里面的命令🤓

不写windows代码,主要是用unix环境,写代码也基本上是linux平台的,之前一直用的mac,但是准备换到windows,主要还是顾虑WSL2的速度

msys2 已死,还是拥抱wsl2吧

其实我也不喜欢用 msys2,如果 Emacs 可以不依赖 msys2 或者 mingw 编译的话,我很乐意把 msys2 删了。 安装 msys2 一个原因是要安装 aspell。

至于 wsl2,我用过,但并不适合我在 Windows 下的使用需求,因为我希望 Emacs 能使用 Windows 下面的工具链以及开发环境,我需要频繁访问 Windows的文件,而不是子系统的文件。如果开发环境是 在 Linux 上,用它是可以的。

1 个赞

不喜欢 mingw 按道理可以用古董版 MSVC 编译 Emacs,不过这样编译已经很久没有受到官方支持了。

我有在用wsl2,不过我是neovim,流畅的很,clangd索引也很快。跟原生的linux 终端环境,性能上几乎没区别。

我尝试在msys2环境下编译了emacs 29,emacs -q 启动后,在 python-mode 下执行 “M-x run-python”,提示错误 Process Python exited abnormally with code 49 ,请问下你的 emacs 29 有没有这个问题,是怎么解决的?

emacs 27 是正常的

我这边使用正常,我是通过 winget install Python.Python.3 安装的 Python。
估计是因为你的系统使用了错误的 python 版本造成的。

你的 python环境是怎么安装的,可以在终端中看看你的 Path,哪个python 优先级最高。

目前在 Windows 上 安装的 python 3.10 已经不提供 python3.exe,只提供 python.exe. 但是 Emacs 29 中python-shell-interpreter 的默认值是 “python3”, 这样可能就会默认去找msys2 中的 python3.

你也许可以通过设置 (setq python-shell-interpreter “python”) 解决问题。

确实是这个问题,按你说的方法:(setq python-shell-interpreter “python”),问题解决。谢谢!

你试试把python.exe同目录拷贝一份命名为python3.exe。然后把python3.exe所在目录加到PATH变量里面。 哈哈。楼上的方法更简单。

WSL2+VcXsrv

wslg 啊,还可以播放声音。用起来蛮流畅的。

我用的是 WSL1+Emacs。使用 WSL1 的原因是我需要频繁读写 Windows 文件系统上的文件,这一点上 WSL1 的性能远好于 WSL2。图形化显示用的 VcXsrv。

我也用过 Msys2 版 Emacs,让我最忍受不了的是两点:

  1. magit 太慢了,任何一个操作都要卡一两秒。虽然 VS Code 也卡,但它的 git 在运行时不会让整个编辑器卡死,而 magit 刷新时会让 Emacs 无响应。

  2. 字体显示非常模糊粗糙,甚至比其它 Windows 程序的显示效果都要差,我也不知道这是为什么:我曾同时装过两个版本的 Emacs,用同一套配置启动,一左一右地对比,发现 WSL 版的 Emacs 的字体显示远比 Windows 版要细腻饱满。

1 个赞

本来还想补充一个屏幕频繁闪烁的问题的,刚才又调研了下,原来闪烁是 MacType 的原因,把 Emacs 给排除掉就行了。没了闪烁问题后,突然发现 Windows Emacs 的体验还是挺丝滑的(我用的是预编译的 29 版本),字体也没有我以前观察到的那么模糊了。

我打算试用一段时间原生 Windows Emacs,如果体验好的话就用下去了。WSL Emacs 确实有一些它的问题,尤其是涉及到与 Windows 应用交互时,经常会遇到𥕞碍,为此我都给各个包创了几个自己的 fork 了。如果原生 Windows Emacs 好用的话,肯定还是用原生版比较好。