WSL2+Emacs+VcXSrv的问题

在WSL2上用X的Emacs,经常会出现方向键变成连续字符的情况。具体而言:

  • 按方向键时,会变成数字,并且会一直出现,就好像数字键被一直按住的样子,要按个其它键才会停止
  • 偶发,有时刚打开Emacs就会发生,有时要用一阵子才会发生,有时发生了之后,切换到其它窗口再切换回来时,该现象会消失,但是过一会儿又会出来。

ezgif-3-66581505a1da

我简单调查了一下

  • 正常的情况下方向键绑定为<left>
  • 问题的情况下被绑定为<kp-4>,而且貌似按下之后,并没有收到回弹的事件,导致误认为是一直按着。

目前在我的三台机器上都出现了,很奇怪,在redit上也看到有类似情况,但是没有解决方案。我机器的环境如下:

  • Windows 10
  • WSL2
  • Emacs 26.3
  • VcxSrv or X410

这一问题不仅限于wsl2,也不只是emacs出现,

wsl1也有这个问题,启动wsl1和wsl2下的gvim也有同样毛病。

没有解决方案,用mobaxterm的Xserver这一问题会轻一些。

有些人不会碰到,我在升2004版的win10之前也没碰到过。

github上微软wsl项目的人员不承认是wsl的问题,认为属于第三方软件的毛病,只要提这样的bug就会立即被关闭,我前两天也去试过一次。

试试evil?

@realasking Vim也有问题?

gvim也有问题,不知道是wsl还是Xserver的锅。

gvim有问题,那evil也逃不了啊。

除了字符重复,还有escape键不生效,我尝试过用x410,结果也没用。

同样的问题,换成微软自家的输入法能解决问题(或者英文)

VcXSrv、x410、mobaxterm 都不行

我切换为英文状态也遇到过。。。。。。

同样的问题,但是终端版的 emacs 貌似就没有这个bug。因为这个已经放弃 wsl 使用 emacs 了

尝试过n个版本的Xming和vcxsrv,发现6.9以上版本的Xming和vcxsrv按esc键都有问题,如果一定要用的话,用c+]代替esc键,或者改键位。

免费的Xming 6.9,按esc键正常。

粘贴是可以用鼠标中键。但是必须在copy后马上按中键。不然好像没效果。

这些x server中矢量字体都很难看,最好是用bitmap字体。

我这里也有,用的是 Xming 和 URxvt,跟输入法没关系,不用输入法也会出现,只能忍着了。

刚刚试了,裸装一个Emacs, WSL1 + XServer 一样有这个问题。

感觉不用方向键可以解决(hjkl) [手动狗头]

1 个赞

我没遇到啊。wsl1+mobaxterm(Xorg version: Cygwin_1.14.5)。我特意试了试方向键。没重现这个问题。

有没有稳定重现的方法?

1 个赞

试了一下这个版本,还是有问题。 回到MobaX版本,关闭了设置里面的Unix Compatible Keyboard,能够不出乱码,实际产生上下左右的效果,但还是连续触发重复按键,Escape键还是不生效

试了下,我也把mobaxterm的Xorg切换为Cygwin_1.14.5(原来一直用的是MobaX),暂时没有遇到方向键问题了,用一段时间看看。多谢。

用这个版本是因为最初使用的时候其他版本都会出现卡死的问题。只有这个版本没事。一直用到现在,比较稳定,没出现问题。

我一直都没遇到过esc出问题的状况。

似乎方向键变成数字键的问题我也遇到过。很久了。好像当时就解决了。我在配置里面找了一下,没有找到什么相关的配置。所以没办法给大家提供什么参考。

还是遇到了方向键不断重复的问题…算了,不折腾了…

wsl1 + mobaxterm 没有该问题

我在 WSL 上装了 xfce 桌面,也存在选菜单项时,按一下方向键就不停循环翻动的情况,停都停不下来,我已经放弃了 WSL 桌面,还是留个命令行算了。

我用wsl 2没有上面说的问题。windows版本是1909。会不会是windows 2004引入的问题?