我想为基于和弦的快捷键添加后备键绑定。这将主要允许核心模式的“领导者”快捷键或其他任何可选内容。
我简单的提议语法将类似于
{
"key": ", e",
"command": "workbench.action.quickOpen"
},
{
"key": ", *", // fallback indicated by "*",
"command": "type", // this might be implied / have a custom command, see below
"args": { "text": "," }
},
此后备中可以提供多种行为(除了执行的命令)
- 特殊命令,类似于
"retypeChordInputs"
,它将接受触发此和弦的所有按键,并像从未开始过和弦一样重复它们 - 特殊变量(可能需要类似运行时变量/插值的东西),将其提供给参数以允许重播。(这可能适合单独的功能请求,因为像变量这样的基本功能可能会导致简单的模态编辑)
- 在和弦的第一部分执行操作后,自动重新输入和弦的第二部分。例如,上面的代码将正确解析为
,e
,如果那是输入的内容。或者,您可以触发一个动作并输入e
。世界是你的。
2条答案
按热度按时间whitzsjs1#
除了
, e
快捷方式之外,在哪些实际世界的情况下这会很有用?当前的提议行为对我来说似乎令人困惑。czfnxgou2#
当然可以!以下是一些额外的例子。
在编写更多的例子时,你可能想要有这三个额外的命令(不确定它们的名称)。
retypeChordInitial
- 这将是在第一个例子中重播ctrl+e
的命令retypeEntireChord
- 这将是在第一个例子中重播ctrl+e *
的命令retypeChordCaptures
- 这将是在第一个例子中重播*
的命令这里有一些你可以利用这个功能做的例子:
ctrl+e
下。{
"key": "ctrl+e e",
"command": "workbench.action.showAllEditorsByMostRecentlyUsed"
},
{
"key": "ctrl+e s",
"command": "workbench.action.gotoSymbol"
},
{
"key": "ctrl+e *",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.quickOpen",
"retypeChordCaptures"
]
}
},
{
"key": "ctrl+j cl",
"command": "type",
"args": {
"text": "console.log("
},
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+j *",
"command": "runCommands",
"args": {
"commands": [
"editor.action.insertSnippet",
"retypeChordCaptures"
]
},
"when": "editorTextFocus && !editorReadonly"
},
// Assuming we already have any of the existing ctrl+k default keybindings
{
"key": "ctrl+k *",
"command": "retypeChordInitial"
},