emacs - 如何在 Windows 10 Bash 上使用 X Windows 和 Emacs?

标签 emacs windows-subsystem-for-linux

我正在使用 Bash on Ubuntu on Windows 程序来使用 Emacs for C++。 现在,我可以使用键盘快捷键对所有内容进行编码,但是,我想用鼠标选择文本或用鼠标设置标记,而不必总是使用键盘。

为了获取 X Windows 系统,我已经执行了 sudo apt-get install xserver -xorg 但 emacs 仍然在终端编辑器中运行。

我不知道还可以使用哪些其他命令或如何让 X Windows 开始运行。

最佳答案

Windows bash 不支持 X Server。但是,将 Windows X Server 端口(例如 MobaXTerm、XMing 或 vcXsrv)与 Windows bash 结合使用是可行的。有些东西是开箱即用的(gvim 做到了,emacs 需要更多的努力。

以下是我的实现方法:

  • 安装 MobaXterm 。您很可能也可以使其与 XMing 一起使用,但我仅使用 MobaXterm 进行了测试。 更新:使用 vcXsrv 进行测试和 XMing (付费版本。)工作原理基本相同,我可能会坚持使用 MobaXTerm。

  • 安装 emacs 25.1 快照。原因是:Ubuntu 14.04 附带了 emacs 24.3,它不能与 Windows bash 和 MobaXTerm X 服务器一起使用(不知道为什么,而且它太旧了。)

使用以下命令安装快照:

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot

然后运行

sudo update-alternatives --config emacs

并选择emacs-snapshot

确保您设置了DISPLAY

export DISPLAY=localhost:0.0

运行 MobaXTerm(您不需要在其中执行任何操作,只需启动它 - 它会在需要时启动 X Server。)

在 bash 中运行 emacs 并享受。

仍然存在一个问题,并且它在我测试过的所有三个软件包(MobaXTerm、XMing 和 vcXsrv)中都存在。 Emacs 坚持初始框架大小,并且在调整窗口大小时不会调整其框架大小。菜单栏也有同样的问题 - 当菜单栏被禁用时,emacs 不会回收其空间,它仍然是一个灰色的矩形。这个问题似乎是 Windows bash 上的 emacs 特有的 - gvim 和其他 GUI 程序似乎工作正常。此外,使用 Windows 上的任何 X Server 在 Linux 上运行 emacs 25.1 都可以正常工作。我尝试使用不同的 GUI 设置(GTK 2.0 等)构建 emacs,但是 Windows bash 上的 emacs make 被卡住了。如果我找到解决方法,我将发布更新。

更新 09/24/2017 根据 Jarett init.el 中的以下内容应该可以解决框架调整大小问题:

(setq frame-resize-pixelwise t)

我的 Windows 不再处于事件状态,因此无法测试它。

关于emacs - 如何在 Windows 10 Bash 上使用 X Windows 和 Emacs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182483/

相关文章:

vim - Emacs 相当于 Vim 的 foldmethod = indent

mysql - 有一个关于 WSL 中 mysql 服务的问题

cmake - 如何在 CMake 中使用 LD_PRELOAD 调用编译器

mysql - ERPNext 操作错误(2003, "Can' t 连接到 u'localhost' 上的 MySQL 服务器([Errno 22] 无效参数)")

emacs - 如何在连接到 lein swank 的 ClojureBox (EmacsW32) REPL 中抑制 ^M 字符

javascript - 动态 YASnippet,插入方法名称和参数

git - 如何配置 git difftool 在 WSL 上正常工作?

bash - 如何使用 PowerShell 在 WSL 中启动 Jupyter Notebook?

git - 如何使用 magit 编辑提交的差异

python - 为 emacs-jedi 安装 python 服务器