vscode 功能:为基于和弦的快捷键添加备用键绑定 翻译结果:新增功能:为基于和弦的快捷键添加备用键绑定,

wsxa1bj1  于 2个月前  发布在  Vscode
关注(0)|答案(2)|浏览(35)

我想为基于和弦的快捷键添加后备键绑定。这将主要允许核心模式的“领导者”快捷键或其他任何可选内容。
我简单的提议语法将类似于

{
    "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 。世界是你的。
whitzsjs

whitzsjs1#

除了, e快捷方式之外,在哪些实际世界的情况下这会很有用?当前的提议行为对我来说似乎令人困惑。

czfnxgou

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"
},

相关问题