You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04远程桌面下VS Code终端无法输入反斜杠求助

问题:Windows RDP访问Ubuntu 22.04时终端无法输入反斜杠(\)

问题详情

  • 环境:通过Windows远程桌面连接新安装的Ubuntu 22.04系统,已配置VS Code
  • 症状:
    • VS Code内置终端无法输入反斜杠(德语键盘快捷键为Alt Gr + ß),但VS Code的设置、文本编辑器等区域可正常输入
    • 其他三级字符(如{[]})在终端及所有窗口均能正常输入
    • 外部bash终端也出现同样的反斜杠输入问题
  • 已尝试操作:
    • 测试过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是否覆盖了反斜杠输入。
  • 更新并配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:04:50