选择多行时的 VS Code 键盘快捷键
VS Code keyboard shortcut when multiple lines selected
我试图在选择一行时为键盘快捷键设置不同的命令,而在选择多行时设置不同的命令。我试图在默认键绑定中找到示例,但没有成功。有什么办法可以做到这一点?我应该在键绑定文件中使用什么 when
参数,也许还有其他方法?
编辑器中有 2 when
个关于选择的上下文
editorHasSelection
editorHasMultipleSelections
如果您要查找的是单选但多行的情况,那您就不走运了,因为上下文不知道选择了什么。
编辑
我已经编写了一个扩展来修复键绑定上下文中的这个空白。
使用 Extra Context 并定义 extraContext:editorSelectionHasMultipleLines
与 when
子句一起使用。
一个例子:
在settings.json
中:
"multiCommand.commands": [
{
"command": "multiCommand.terminalSingleLine",
"sequence": [
{ "command": "workbench.action.terminal.sendSequence",
"args": { "text": "echo Single Line\u000D" }
}
]
},
{
"command": "multiCommand.terminalMultipleLine",
"sequence": [
{ "command": "workbench.action.terminal.sendSequence",
"args": { "text": "echo Multiple Lines\u000D" }
}
]
}
]
在keybindings.json
中:
{
"key": "ctrl+k f5", // or any other key combo
"command": "multiCommand.terminalSingleLine",
"when": "editorTextFocus && !extraContext:editorSelectionHasMultipleLines"
},
{
"key": "ctrl+k f5",
"command": "multiCommand.terminalMultipleLine",
"when": "editorTextFocus && extraContext:editorSelectionHasMultipleLines"
}
我试图在选择一行时为键盘快捷键设置不同的命令,而在选择多行时设置不同的命令。我试图在默认键绑定中找到示例,但没有成功。有什么办法可以做到这一点?我应该在键绑定文件中使用什么 when
参数,也许还有其他方法?
编辑器中有 2 when
个关于选择的上下文
editorHasSelection
editorHasMultipleSelections
如果您要查找的是单选但多行的情况,那您就不走运了,因为上下文不知道选择了什么。
编辑
我已经编写了一个扩展来修复键绑定上下文中的这个空白。
使用 Extra Context 并定义 extraContext:editorSelectionHasMultipleLines
与 when
子句一起使用。
一个例子:
在settings.json
中:
"multiCommand.commands": [
{
"command": "multiCommand.terminalSingleLine",
"sequence": [
{ "command": "workbench.action.terminal.sendSequence",
"args": { "text": "echo Single Line\u000D" }
}
]
},
{
"command": "multiCommand.terminalMultipleLine",
"sequence": [
{ "command": "workbench.action.terminal.sendSequence",
"args": { "text": "echo Multiple Lines\u000D" }
}
]
}
]
在keybindings.json
中:
{
"key": "ctrl+k f5", // or any other key combo
"command": "multiCommand.terminalSingleLine",
"when": "editorTextFocus && !extraContext:editorSelectionHasMultipleLines"
},
{
"key": "ctrl+k f5",
"command": "multiCommand.terminalMultipleLine",
"when": "editorTextFocus && extraContext:editorSelectionHasMultipleLines"
}