VSCode键盘快捷键:“将表达式结果分配给新的本地变量”是什么?

23
在Eclipse中,有一个非常方便的快捷键被默认映射为CTRL + 2 + L。当选择表达式时,它会创建一个新的局部变量来保存表达式的结果。例如...

this.doSomeCalculation();

如果鼠标光标位于上面的行上方,按下CTRL + 2 + L将把该行变成...

double someCalculation = this.doSomeCalculation()

我在编写Java代码时经常使用这个快捷键。在Visual Studio Code中编辑TypeScript时是否有类似的功能?
4个回答

5

你可以为提取常量等重构操作指定快捷键

下面是一个示例快捷键,将ctrlshifte与提取常量重构绑定起来:

{
  "key": "ctrl+shift+e",
  "command": "editor.action.refactor",
  "args": {
    "kind": "refactor.extract.constant",
    "apply": "first"
  }
}

这个快捷键绑定适用于JavaScript和TypeScript(以及任何具有提取常量重构的其他语言)。
附注:以下是JS / TS的微小变化,可以让单个快捷键同时适用于提取类型和提取常量。
{
  "key": "ctrl+shift+e",
  "command": "editor.action.refactor",
  "args": {
    "kind": "refactor.extract",
    "preferred": true,
    "apply": "first"
  }
}

4
在此链接上,vscode 上的事情几乎相似。

https://code.visualstudio.com/docs/java/java-editing

它展示了如何将代码的一部分提取到本地变量中。 这与Eclipse有些不同。在VSCode中,需要“选择”语句,然后按下ctrl + shift + R,然后弹出一个窗口,在其中选择提取到本地变量。 您可以配置键盘快捷方式为Ctr + 2 l。 实际上并不完全相同,但是...

3

通过在 keybindings.json 中进行一些试错,我成功地使其工作。对于你来说,我认为映射应该是这样的:

[
  {
    "key": "ctrl+2 ctrl+l",
    "command": "editor.action.codeAction",
    "args": {
      "kind": "refactor.assign.variable"
    },
    "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
  }
]

我个人使用的是 ctrl + alt + space 组合键:

[
  {
    "key": "ctrl+alt+space",
    "command": "editor.action.codeAction",
    "args": {
      "kind": "refactor.assign.variable"
    },
    "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
  }
]

2

您可以选择一个表达式,然后执行以下操作:

在Mac上:

Opt + Cmd + V

在Windows上:

Ctrl + Alt + V


无法在Windows上运行... - Kıvılcım
@Kıvılcım 前往左下角的 vscode 小齿轮 -> 键盘快捷键,然后输入:editor.action.codeAction 并检查哪个按键与此命令绑定。 - Felipe Pereira
1
后缀codeAction在editor.action.*或其他任何地方都不存在。顺便说一下,我正在使用1.61.2版本。 - Kıvılcım

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接