WSL 运行 Emacs GUI

简单介绍一下 WSL 使用 Emacs 的方法

工具

  • windows10
  • windows terminal
  • mobaxterm

开启 WSL

控制面板 -> 程序与功能 -> 启用或关闭 Windows 功能 勾选"适用于 Linux 的 Windows 子系统"

安装成功后重启计算机

安装 Debian for Windows

打开 Microsoft Store, 搜索 debian 并安装 (也支持Ubuntu)

安装 Windows Terminal

同样在 Microsoft Store 里搜索 Terminal,排名第一就是

安装 MobaXterm

为了运行 GUI 程序,需要一个 XServer. 为什么不用 Xming, VcXsrv,是因为这两款在高清屏上都有些多多少少的bug,还会偶尔崩溃,稳定性不好,相对而言 MobaXterm 的使用体验和稳定性等都好很多。

MobaXterm free Xserver and tabbed SSH client for Windowsmobaxterm.mobatek.net图标

MobaXterm 启动后需要手动点一下右上角 X server,变成彩色时候代表已经启动了, 黑白代表已停止, 这里确保已经启动。

运行 WSL

首先打开刚刚下载的 windows terminal

输入 debian (或者你刚刚下载的ubuntu) 启动子系统,首次执行改命令会让你设置用户名密码, 按照提示设置即可。

配置完debian后安装 Emacs

sudo apt update && apt install -y emacs

如果比较慢,可以考虑换源 debgen.simplylinux.ch/

安装成功先别急着启动,需要告诉 linux 我们的 X server在哪里,这样才能正确启动 GUI 程序.

写入环境变量到 /etc/profile

sudo su
echo export DISPLAY=localhost:0 >> /etc/profile
exit

操作到这一步才算所有都配置完成。接着退出 wsl , 重新进入 debian

然后执行 emacs 命令

利用 wsl 起 emacs gui 是目前性能消耗最小的一种方式,下面列一下我尝试的三种模式对比

  • VMWare 虚拟机内使用 Emacs GUI

消耗资源非常多,而且文件不共享,拷贝文件,复制粘贴,切换不同窗口很麻烦,而且还有Emacs和VMWare快捷键冲突的问题,一不留神虚拟机重启了,是最不推荐的一种方式。

  • VirtualBox + Docker + XServer 使用 Emacs GUI

使用体验优于 VMWare, 但是文件系统不共享,而且启动程序需要大量网络映射(因为文件都在docker里,所以跑命令也是用docker跑),使用起来稍微比较繁琐。

  • WSL + Terminal+ XServer 使用 Emacs GUI

文件能够共享,共享同一个网卡,监听wsl的回环网卡,在windows里直接访问localhost也能访问,不需要映射。消耗资源也很少,基本没有额外开销(现在的Windows真的很神奇)

快捷方式

这个是看了论坛有人发了一个将 wsl emacs 做成windows快捷方式的,表示很方便,emacs-china.org/t/emacs

sudo apt install wslu
wslusc -g emacs


以上

编辑于 05-28