20

这位习惯于 elpy 的 Emacs 老用户正在尝试使用 Scala 以及更具体地说是 Ammonite repl 迁移到 VSCode。

我使用 Ctrl+' 打开集成终端 & 我所要做的就是在 bash shell (ubuntu) 上输入 amm 来打开 repl;但是,我仍然想念能够使用 Ctrl+Enter 将编辑器中的行或选择发送到集成 shell。

我想这意味着一些编码。我可以从哪里开始?有没有人完成类似的?

非常感谢,

4

4 回答 4

17

如果您已经打开了终端和 REPL,则有一个内置命令,称为 "Run Selected Text in Active Terminal" / workbench.action.terminal.runSelectedText

它没有默认键绑定,因此您需要自己设置。像这样的东西会起作用:

{
  "key": "ctrl+enter",
  "command": "workbench.action.terminal.runSelectedText",
  "when": "editorTextFocus && editorHasSelection"
}
于 2017-08-14T10:17:24.097 回答
15

实际上,我发现添加 VSCode扩展可以完成这项工作:

我刚刚更改了settings.json:

{
    "window.zoomLevel": 1,
    "editor.fontSize": 11,
    "terminal.integrated.fontSize": 11,
    "macros": {
        "execCurLn": [
            "expandLineSelection",
            "workbench.action.terminal.runSelectedText",
            "cancelSelection"
        ]
    }
}

并添加(第一部分是纯 @kwood 并再次感谢你)到 keybindings.json

   {
        "key": "ctrl+enter",
          "command": "workbench.action.terminal.runSelectedText",
            "when": "editorTextFocus && editorHasSelection"
    }
    {
        "key": "ctrl+enter",
          "command": "macros.execCurLn",
            "when": "editorTextFocus && !editorHasSelection"
    },
{ "key": "ctrl+`", "command": "workbench.action.terminal.focus"},
{ "key": "ctrl+`", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"}
于 2017-08-14T15:35:27.790 回答
8

CTRL使用++打开命令面板SHIFTP查找Terminal: Run Selected Text In Active Terminal. 在左侧,您将看到键绑定或用于设置绑定的轮引擎。

在此处输入图像描述

于 2021-03-25T09:15:19.857 回答
1

关注另一篇文章VS Code 在运行 ctrl + enter时移至下一行,运行当前行然后向下光标,避免意外运行下一行

在 settings.json 中,添加

"macros": {
    "pythonExecSelectionAndCursorDown": [
        "python.execSelectionInTerminal",
        "cursorDown",
    ]
} 

在 keybindings.json 中,添加

{
    "key": "ctrl+enter",
      "command": "macros.pythonExecSelectionAndCursorDown",
        "when": "editorTextFocus && editorLangId == 'python'"
}, 
于 2021-09-16T15:44:31.257 回答