Ubuntu22.04远程桌面下VS Code终端无法输入反斜杠求助
问题:Windows RDP访问Ubuntu 22.04时终端无法输入反斜杠(\)
问题详情
- 环境:通过Windows远程桌面连接新安装的Ubuntu 22.04系统,已配置VS Code
- 症状:
- VS Code内置终端无法输入反斜杠(德语键盘快捷键为
Alt Gr + ß),但VS Code的设置、文本编辑器等区域可正常输入 - 其他三级字符(如
{[]})在终端及所有窗口均能正常输入 - 外部bash终端也出现同样的反斜杠输入问题
- VS Code内置终端无法输入反斜杠(德语键盘快捷键为
- 已尝试操作:
- 测试过GitHub、Stack Overflow上的相关解决方案,无效
- 检查所有相关键盘快捷键,未发现异常
- 对比配置完全相同的Ubuntu 22.04虚拟机(配置从GitHub导出),该虚拟机无此问题
VS Code键盘快捷键排查日志
# first pressing ctrl + shift + P to open Keyboard Shortcut Troubleshooting, then pressing Alt Gr + ß for backslash 2023-07-24 16:22:26.824 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:22:26.825 [info] [KeybindingService]: \ Keyboard event cannot be dispatched 2023-07-24 16:22:26.825 [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control 2023-07-24 16:22:26.826 [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl') 2023-07-24 16:22:26.826 [info] [KeybindingService]: \ Keyboard event cannot be dispatched in keydown phase. 2023-07-24 16:22:27.232 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:22:27.233 [info] [KeybindingService]: \ Keyboard event cannot be dispatched 2023-07-24 16:22:27.233 [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 16, key: Shift 2023-07-24 16:22:27.234 [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 4 ('Shift') 2023-07-24 16:22:27.234 [info] [KeybindingService]: \ Keyboard event cannot be dispatched in keydown phase. 2023-07-24 16:22:27.518 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:22:27.519 [info] [KeybindingService]: | Resolving ctrl+shift+P 2023-07-24 16:22:27.519 [info] [KeybindingService]: \ From 2 keybinding entries, matched workbench.action.showCommands, when: no when condition, source: built-in. 2023-07-24 16:22:27.519 [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 80, key: P 2023-07-24 16:22:27.519 [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 46 ('P') 2023-07-24 16:22:27.520 [info] [KeybindingService]: | Resolving ctrl+shift+P 2023-07-24 16:22:27.520 [info] [KeybindingService]: \ From 2 keybinding entries, matched workbench.action.showCommands, when: no when condition, source: built-in. 2023-07-24 16:22:27.520 [info] [KeybindingService]: + Invoking command workbench.action.showCommands. 2023-07-24 16:22:28.198 [info] [KeybindingService]: + Ignoring single modifier shift due to it being pressed together with other keys. # Here starts the backslash part 2023-07-24 16:23:05.481 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:23:05.482 [info] [KeybindingService]: \ Keyboard event cannot be dispatched 2023-07-24 16:23:05.482 [info] [KeybindingService]: / Received keydown event - modifiers: [], code: ArrowLeft, keyCode: 225, key: AltGraph 2023-07-24 16:23:05.482 [info] [KeybindingService]: | Converted keydown event - modifiers: [], code: ArrowLeft, keyCode: 0 ('unknown') 2023-07-24 16:23:05.482 [info] [KeybindingService]: \ Keyboard event cannot be dispatched in keydown phase. 2023-07-24 16:23:05.695 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:23:05.695 [info] [KeybindingService]: | Resolving [ 2023-07-24 16:23:05.710 [info] [KeybindingService]: \ No keybinding entries. # in the next line you can see that the \ key is indeed recognized 2023-07-24 16:23:05.710 [info] [KeybindingService]: / Received keydown event - modifiers: [], code: Minus, keyCode: 219, key: \ 2023-07-24 16:23:05.710 [info] [KeybindingService]: | Converted keydown event - modifiers: [], code: Minus, keyCode: 92 ('[') 2023-07-24 16:23:05.710 [info] [KeybindingService]: | Resolving [ 2023-07-24 16:23:05.711 [info] [KeybindingService]: \ No keybinding entries. # only pressing ß 2023-07-24 16:25:49.559 [info] [KeybindingService]: / Soft dispatching keyboard event 2023-07-24 16:25:49.626 [info] [KeybindingService]: | Resolving [ 2023-07-24 16:25:49.626 [info] [KeybindingService]: \ No keybinding entries. 2023-07-24 16:25:49.626 [info] [KeybindingService]: / Received keydown event - modifiers: [], code: Minus, keyCode: 219, key: ß 2023-07-24 16:25:49.626 [info] [KeybindingService]: | Converted keydown event - modifiers: [], code: Minus, keyCode: 92 ('[') 2023-07-24 16:25:49.626 [info] [KeybindingService]: | Resolving [ 2023-07-24 16:25:49.626 [info] [KeybindingService]: \ No keybinding entries.
解决思路
- 调整Windows端RDP键盘设置:
- 打开远程桌面连接的“显示选项”→“本地资源”,将“键盘”选项设为“在此计算机上”,避免远程端拦截按键;同时启用“应用Windows组合键”选项。
- 修复Ubuntu端键盘布局配置:
- 进入系统设置→“键盘”→“布局”,重新添加德语键盘布局并设为默认;检查“快捷键”中是否有占用
Alt Gr + ß的自定义绑定。 - 执行
setxkbmap -print -verbose 10查看当前键盘映射,若异常则手动指定布局:setxkbmap de。
- 进入系统设置→“键盘”→“布局”,重新添加德语键盘布局并设为默认;检查“快捷键”中是否有占用
- 排查终端配置干扰:
- 重命名bash的
~/.inputrc文件(mv ~/.inputrc ~/.inputrc.bak),重启终端测试是否有自定义绑定干扰。 - 在VS Code设置中,将
terminal.integrated.gpuAcceleration设为off;检查terminal.integrated.keybindingsOverride是否覆盖了反斜杠输入。
- 重命名bash的
- 更新并配置xrdp服务:
- 执行
sudo apt update && sudo apt upgrade xrdp更新xrdp到最新版本。 - 修改
/etc/xrdp/xrdp.ini,添加或修改以下配置后重启服务(sudo systemctl restart xrdp):keyboard_type=4 keyboard_layout=de
- 执行
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

