我正在尝试将 ctrl + x 绑定到editor.action.clipboardCutAction
(剪切),但条件是它仅在选择文本时调用。
但是,它不起作用。当没有选择文本时,它仍会切断整行。
代码:
"key": "ctrl+x",
"command": "editor.action.clipboardCutAction",
"when": "editorTextFocus && editorHasSelection && !editorReadonly"
答案 0 :(得分:1)
vscode 团队的一名成员开发了“官方”答案。这本质上是@Victor 提出的。见disable Ctrl+X cut line when no selection:
<块引用>ctrl+x 只是特殊的,需要绑定到一个空操作来停止
默认。我添加了一个什么都不做的 noop
命令。所以最后
解决方案是:
{
"key": "ctrl+x",
"command": "noop"
},
{
"key": "ctrl+x",
"command": "editor.action.clipboardCutAction",
"when": "editorHasSelection"
}
应该会在 v1.56 中发布。
答案 1 :(得分:0)
作为临时解决方案,您可以先重新分配此快捷方式。例如:
{
"key": "ctrl+x",
"command": "workbench.action.closeMessages",
},
{
"key": "ctrl+x",
"command": "editor.action.clipboardCutAction",
"when": "editorTextFocus && editorHasSelection && !editorReadonly"
},
而不是命令workbench.action.closeMessages
,您可以使用另一个。
如果未选择任何内容,则按 ctrl + x 将执行第一个组合键并运行workbench.action.closeMessages
命令。
在设置 ctrl +,中添加以下内容:
// Controls whether copying without a selection copies the current line.
"editor.emptySelectionClipboard": false,
复制时也适用。