在WSL2上用X的Emacs,经常会出现方向键变成连续字符的情况。具体而言:
- 按方向键时,会变成数字,并且会一直出现,就好像数字键被一直按住的样子,要按个其它键才会停止
- 偶发,有时刚打开Emacs就会发生,有时要用一阵子才会发生,有时发生了之后,切换到其它窗口再切换回来时,该现象会消失,但是过一会儿又会出来。
我简单调查了一下
- 正常的情况下方向键绑定为
<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就会立即被关闭,我前两天也去试过一次。
gvim也有问题,不知道是wsl还是Xserver的锅。
除了字符重复,还有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 个赞
yqu212
13
我没遇到啊。wsl1+mobaxterm(Xorg version: Cygwin_1.14.5)。我特意试了试方向键。没重现这个问题。
有没有稳定重现的方法?
1 个赞
试了一下这个版本,还是有问题。
回到MobaX版本,关闭了设置里面的Unix Compatible Keyboard,能够不出乱码,实际产生上下左右的效果,但还是连续触发重复按键,Escape键还是不生效
试了下,我也把mobaxterm的Xorg切换为Cygwin_1.14.5(原来一直用的是MobaX),暂时没有遇到方向键问题了,用一段时间看看。多谢。
yqu212
16
用这个版本是因为最初使用的时候其他版本都会出现卡死的问题。只有这个版本没事。一直用到现在,比较稳定,没出现问题。
我一直都没遇到过esc出问题的状况。
似乎方向键变成数字键的问题我也遇到过。很久了。好像当时就解决了。我在配置里面找了一下,没有找到什么相关的配置。所以没办法给大家提供什么参考。
我在 WSL 上装了 xfce 桌面,也存在选菜单项时,按一下方向键就不停循环翻动的情况,停都停不下来,我已经放弃了 WSL 桌面,还是留个命令行算了。
yqu212
20
我用wsl 2没有上面说的问题。windows版本是1909。会不会是windows 2004引入的问题?