关于doom-emacs在wsl2上启动时间的疑问

如图:左边是 emacs -nw ,右边是gui版本。

两者都差出一倍的时间了。

win10:18932

windows terminal:0.2.1831

wsl2下用的Emacs是Windows还是Linux版本?

用的linux的emacs

update:

后来又试了试直接用MobaXterm运行 emacs -nw ,发现启动时间是正常的0.6s左右,看样子是 windows terminal的导致的启动慢。windows terminal的话是启动后在 scratch buffer停留了很长时间,然后才是dashboard

如果没记错的话,Windows terminal 还比较年轻吧,各种问题估计会不少

windows terminal 还在preview版本

wsl2比起wsl运行emacs进步大吗?

wsl的话在文件io上体验很不好, 经常需要等待.

wsl2之后提升很多, io接近linux原生


有一个小毛病: wsl2 应该是共享win主机的path, zsh的命令补全也会查找 C:\Windows\system32\ , 命令补全基本不可用.

1 个赞

这个情况可以有个workaround 在注册表里将 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{GUID}\Flags 7 改成 5 就好了

2 个赞

谨慎跟帖操作。 我试着操作了两次,将16进制的15修改成了十进制的5.

修改之后,子系统安装的Ubuntu立刻被扫清了,需要重新安装。

PS C:\Users\Gaowei> wsl
适用于 Linux 的 Windows 子系统没有已安装的分发版。
可以通过访问 Microsoft Store 来安装分发版:
https://aka.ms/wslstore

重新安装的截图:

注册表中flag的值还是f(15)。

试了两次都是同样的结果。

之前的wsl-ubuntu找不到一点数据痕迹,请谨慎跟帖操作。

一年前wsl2和Windows Terminal才刚发布,经过一年的更新可用性已经提高很多,此帖信息可能过时。

关于Windows PATH的问题。我直接在 .zprofile 设置了 PATH 和 windows_path 变量,使用时直接修改当前环境PATH即可。

实际使用中在wsl2中调用Windows程序的次数其实比较少,所以我感觉这是个比较折中的解决方案。

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/path/to/other"
export windows_path="/mnt/c/WINDOWS/system32:/path/to/other"
alias wph="export PATH="$PATH:$windows_path"

从Windows-Terminal中启动doom-emacs还是一样的慢。差10多倍的时间。

实际使用路径的问题,我把 /mnt/c/Users/Me 作为Home路径。这样wsl-ubuntu只作为一张皮,作server使用,里面不保留任何数据。与window无缝协作。