Visual studio code 能否在VSCode中禁用剪切快捷方式(Ctrl+;X)的剪切线功能?

Visual studio code 能否在VSCode中禁用剪切快捷方式(Ctrl+;X)的剪切线功能?,visual-studio-code,Visual Studio Code,如果有选择,cut(Ctrl+X)将复制并删除选择。如果没有,它将复制整行并删除它 我想禁用后者。它接近于save(Ctrl+S),我不想在保存时删除整行内容 是否可以在VSCode中禁用cut快捷键(Ctrl+X)的剪切线功能 我所尝试的: 将when子句添加到cut:editorHasSelection: 键盘快捷键菜单如下所示: 我的keybindings.json: [ { “键”:“ctrl+x”, “命令”:“editor.action.clipboardCutAction”,

如果有选择,
cut
(Ctrl+X)将复制并删除选择。如果没有,它将复制整行并删除它

我想禁用后者。它接近于
save
(Ctrl+S),我不想在保存时删除整行内容

是否可以在VSCode中禁用
cut
快捷键(Ctrl+X)的剪切线功能

我所尝试的:
  • when
    子句添加到
    cut
    editorHasSelection

    键盘快捷键
    菜单如下所示:

    我的
    keybindings.json

    [
    {
    “键”:“ctrl+x”,
    “命令”:“editor.action.clipboardCutAction”,
    “when”:“editorHasSelection”
    },
    {
    “键”:“ctrl+x”,
    “命令”:“-editor.action.clipboardCutAction”
    }
    ]
    
    保存并重新打开VSCode后,
    cut
    仍能正常工作

  • keybindings.json
    中删除第二个快捷方式:

    我的
    keybindings.json

    [
    {
    “键”:“ctrl+x”,
    “命令”:“editor.action.clipboardCutAction”,
    “when”:“editorHasSelection”
    }
    ]
    
    键盘快捷键
    菜单更改为:

    保存并重新打开VSCode后,
    cut
    仍能正常工作

信息
  • Ubuntu 20.04
  • Visual Studio代码版本1.55.2
  • 根据代码重新创建-内幕人士1.56.0-Insiders(13f1aff,2021-04-28T04:52:56.570Z)

使用匹配的第一个密钥绑定

首先定义Remove键绑定

[
    {
        "key": "ctrl+x",
        "command": "-editor.action.clipboardCutAction"
    },
    {
        "key": "ctrl+x",
        "command": "editor.action.clipboardCutAction",
        "when": "editorHasSelection"
    }
]

这是一个bug,现在已修复并于1.56.0()发布

来自VSCode团队的alexdima回复如下:

ctrl+x
只是一种特殊功能,需要绑定到no op以停止默认操作。我添加了一个不执行任何操作的
noop
命令


{
“键”:“ctrl+x”,
“命令”:“noop”
},
{
“键”:“ctrl+x”,
“命令”:“editor.action.clipboardCutAction”,
“when”:“editorHasSelection”
}

不幸的是,这不起作用。关于“首先定义Remove keybinding”,我更新了我的问题,对此做了更多的澄清。确实使用了第一个匹配的keybinding,但它是从下至上进行计算的。请参阅@pilgrim,然后使用键盘快捷键调试,以查看禁用和ctrl+X时会发生什么情况,并在禁用时绑定到不同的组合键entry@rioV8我做了keybindings检查,但它与任何命令都不匹配,但仍然剪切了整行??某些内置的东西正在覆盖禁用的尝试-这就是为什么我认为这是一个错误。@Mark可能有硬编码的键绑定,请求vscode问题对我来说实际上似乎是一个错误-您不能以您尝试的明显和正确的方式禁用
clipboardCutAction
。但是看到这个答案可以找到一个有效的解决方案:但是他使用的命令不再被识别,也许可以使用
通知。clearAll
而是绑定到
ctrl+x
@Mark this works!有
通知。clearAll
就像一个符咒。我提出了一个问题,但现在它被忽略了(9个小时没有回应)。vscode团队下周将进行新版本的最终测试,因此可能需要一段时间。您应该添加问题解决方案作为答案。