如何让 VScode 接受我的键盘映射

如何让 VScode 接受我的键盘映射

简短问题: 有没有办法强制 VSCode 遵循 xkb 定义的键映射?对于右移和向上箭头,它似乎有自己的键映射,这破坏了我的触摸打字。

前提: 我的联想 Flex 4 Ideapad 键盘有不寻常的布局。它的 UP 键(UpArrow/PgUp)通常位于 RTSH 键(右 Shift)的位置,而 RTSH 键位于 UP 箭头键的右侧。这导致命令和文本文档中出现许多代价高昂的错误:盲打变得很危险。笔记本电脑运行的是 Ubuntu 20.4

我将键映射换回了合理的位置,首先通过编辑/usr/share/X11/xkb/symbols/pc,然后制作。

key <RTSH> {    [ Up            ]   };
key   <UP> {    [ Shift_R       ]   };

这对于我的所有目的来说都很好。所有应用程序都接受 UP 键现在具有 Shift 功能,并且 RTSH 用作Up,无论如何我很少使用光标。多年来没有问题。

问题: 我开始在工作中使用 VSCode,并且我很喜欢它。

但是在我的 Ideapad 中,VSCode 始终将我按下的 UpArrow 键解释为 而Shift+Up不是 Shift,后者是 的快捷键"command": "cursorUpSelect"。即使在 VSCode 的 Vim 模式下也会发生这种情况。我只想让 VSCode 遵循我的键盘映射并将此命令分配给 Shift+Up。

我已经尝试过的解决方案: 我尝试通过编辑 来关闭此快捷键keybindings.json。但我能做的最好的就是为这个命令创建另一个快捷键,UP 键仍然不能充当 Shift 修饰键。禁用或重新分配快捷键将使光标保持静止,但只有当我按下修饰键两次(UP+A+A 而不是 UP+A)时,Shift 修饰键才会起作用。这仍然妨碍了盲打。

我尝试进一步编辑/usr/share/X11/xkb/symbols/pc,编辑

    modifier_map Shift  { Shift_L, Shift_R};

进入

    modifier_map Shift  { Shift_L, Up};

但这会导致右移修饰符失效。因此我将 xkb/symbols/pc 改回其原始“出厂”状态,然后/usr/share/X11/xkb/keycodes/evdev改为编辑。其他一切都按我在每个应用程序中的预期工作,只有 VSCode 仍然会选择文本并且每次我通过按下 UP 键调用 Shift 修饰符时都会将光标向上移动。

答案1

在 vscode 设置 -> 应用程序 -> 键盘

在“键盘:Dispatch”中选择“KeyCode”

这对我有用

相关内容