环境
- 版本为
149.0.7827.103的chrome浏览器 - 使用的jupyter:JupyterLab + Jupyter Server
问题描述
使用版本号为149.0.7827.103的chrome浏览器,打开jupyter之后,每次使用键盘输入时,
- 英文输入完全没有问题
- 中文的拼音输入没有问题
- 中文的符号输入每次需要连按两次才能输入,比如中文的逗号、句号、括号等,精神病一样
但是,对比试验
- edge完全好使
- chrome的无痕浏览器模式依然不好使
- 关闭chrome的一些设置功能,例如GPU加速,都不好使
- 关闭插件,例如翻译插件、广告屏蔽器插件等,都不好使
补充:如果使用无痕浏览器模式打开jupyter,但是需要输入密码,实际上jupyter每次运行是随机生成一个token 登录链接,所以需要在你的jupyter运行终端里面找到你的登录链接

原因
Chrome 在 Windows 上对这种结构 + 中文输入法会出现以下现象
- IME 首次 keydown 被吞掉
- focus 重新激活导致延迟
- compositionstart / keydown 顺序异常
- 当前使用的是JupyterLab + Jupyter Server:对 Chrome 输入法兼容问题更敏感
解决方法
- 方法一:设置jupyter打开方式默认是edge浏览器 ✔️
- 方法二:修chrome,失败啦 ❌
如何设置jupyter默认浏览器的方式
环境中输入以下指令
jupyter notebook --generate-config

找到以下路径,找到jupyter_notebook_config.py文件
C:\Users\你的用户名\.jupyter\jupyter_notebook_config.py
打开该文件,设置以下内容,使用edge浏览器作为默认浏览器
import webbrowser
webbrowser.register('edge', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe'))
c.ServerApp.browser = 'edge' # 这俩变量名要注意一致,都是edge

