“将表达式结果分配给新的局部变量'”的快捷方式

时间:2017-03-13 11:24:18

标签: typescript keyboard-shortcuts visual-studio-code

在Eclipse中,有一个非常方便的快捷方式,默认情况下映射到 CTRL + 2 + L 选择一个表达式。它的作用是创建一个新的局部变量来保存表达式的结果。例如......

func info(format string, args ...interface{}) { _, file, line, _ := runtime.Caller(1) prefix := fmt.Sprintf("%v:%v: ", path.Base(file), line) if logger != nil { logger.Printf(prefix+format+"\n", args...) } }

如果鼠标光标位于上面的行上, CTRL + 2 + L 会将该行转换为...

this.doSomeCalculation();

在编写Java时,我发现自己经常使用这个快捷方式。是否可以在 VSCode 中编辑Typescript?

4 个答案:

答案 0 :(得分:2)

您可以assign keybinding to refactorings(例如提取常量)。

这是将 ctrl shift e 绑定到提取常量重构的键绑定:

table_name = []
counter=0
for year in ['2017', '2018', '2019']:
    table_name.append(f'temp_df_{year}')
    print(table_name[counter])
    table_name[counter] = pd.merge(table1, table2.loc[table2.loc[:, 'year'] == year, :], left_on='col1', right_on='col1', how='left')
    counter += 1

temp_df_2017

此键绑定将在JavaScript和TypeScript(以及具有提取常量重构的任何其他语言)中工作

P.S。这是JS / TS的一个细微变化,它使提取类型和提取常量都可以使用单个键绑定:

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

答案 1 :(得分:0)

此链接上的vscode几乎所有类似的东西

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

它显示了如何将部分代码提取到局部变量。 这与日食有些不同。在vscode上,它需要“选择”语句,然后按ctrl + shift + R,然后弹出一个窗口,您需要在其中选择要提取到局部变量的窗口。

您可以将键盘快捷键配置为Ctr + 2 l。

真的不是同一回事,但是...

答案 2 :(得分:0)

您可以选择一个表达式,然后:

在Mac中:

Opt + Cmd + V

在Windows中:

Ctrl + Alt + V

答案 3 :(得分:0)

我在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"
  }
]