visual-studio-code - 选择多行时的 VS Code 键盘快捷键
问题描述
我试图在选择一行时为键盘快捷键设置不同的命令,而在选择多行时设置不同的命令。我试图在默认键绑定中找到示例,但没有成功。有什么办法可以做到这一点?我应该在键绑定文件中使用什么when
参数,也许还有另一种方法?
解决方案
编辑器中有 2 个when
关于选择的上下文
editorHasSelection
editorHasMultipleSelections
如果您正在寻找选择是单个选择但多行的情况,那么您不走运,上下文不知道选择了什么。
编辑
我编写了一个扩展来修复键绑定上下文中的这个差距。
使用额外上下文,它定义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"
}
推荐阅读
- ios12 - Xcode 10 的通用框架
- corda - Corda中节点特定的状态变量?
- java - 如何复制Excel行?
- html - 如果我将在 Web 应用程序中使用更多数量的 SVG 图标,我不能直接使用为每个图标提供下面提到的代码
- wordpress - 如何从 Gravity 表单获取 Twilio SMS StatusCallback?
- php - php ajax 使用新数组上传多个文件
- javascript - 日期范围选择器两个日期相同
- c# - 从excel中读取矩阵并使用c#DataTable循环
- javascript - 这个反应库代码周围的“{”“}”大括号有什么意义?
- sql - 具有联合和限制的 knex 子查询