Scala VS代码在集成控制台中执行当前行或选择

Scala VS代码在集成控制台中执行当前行或选择,scala,visual-studio-code,vscode-extensions,vscode-settings,ammonite,Scala,Visual Studio Code,Vscode Extensions,Vscode Settings,Ammonite,这个习惯于elpy的老Emacs用户正试图使用Scala迁移到VSCode&更具体地说是Ammonite repl 我使用Ctrl+'打开集成终端&我所要做的就是在bashshell(ubuntu)上键入amm来打开repl;但是,我仍然无法使用Ctrl+Enter将行或所选内容从编辑器发送到集成shell 我想这意味着一点编码。我从哪里开始?有人完成过类似的工作吗 非常感谢,如果您已经打开了终端和REPL,则有一个内置命令,名为“在活动终端中运行选定文本”/workbench.action.t

这个习惯于elpy的老Emacs用户正试图使用Scala迁移到VSCode&更具体地说是Ammonite repl

我使用Ctrl+'打开集成终端&我所要做的就是在bashshell(ubuntu)上键入amm来打开repl;但是,我仍然无法使用Ctrl+Enter将行或所选内容从编辑器发送到集成shell

我想这意味着一点编码。我从哪里开始?有人完成过类似的工作吗


非常感谢,

如果您已经打开了终端和REPL,则有一个内置命令,名为“在活动终端中运行选定文本”/
workbench.action.terminal.runSelectedText

它没有默认的键绑定,所以您需要自己设置它。类似这样的方法会奏效:

{
  "key": "ctrl+enter",
  "command": "workbench.action.terminal.runSelectedText",
  "when": "editorTextFocus && editorHasSelection"
}

实际上,我发现添加VSCode扩展可以完成以下任务:

我刚刚更改了settings.json:

{
    "window.zoomLevel": 1,
    "editor.fontSize": 11,
    "terminal.integrated.fontSize": 11,
    "macros": {
        "execCurLn": [
            "expandLineSelection",
            "workbench.action.terminal.runSelectedText",
            "cancelSelection"
        ]
    }
}
并在keybindings.json中添加了(第一部分是纯@kwood&再次感谢你)

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

使用CTRL+SHIFT+p打开命令选项板,并查找
终端:在活动终端中运行所选文本。在左侧,您将看到键绑定或用于设置绑定的车轮引擎


看看Aluan:至少需要一些调整,但看起来很有希望。至少我应该能够利用它作为一个样本。非常感谢,是的,这很有效!我想我真的会像埃尔比一样工作。我想我需要使用任务添加多个命令。“当”:“EditorExtFocus&&!editorHasSelection”“命令”:“expandLineSelection”&“workbench.action.terminal.runSelectedText”&“cancelSection”,但这确实很好。谢谢,我刚刚发布了对我上面添加的注释Q extended的回答。令人惊讶的是,它没有
运行当前行并将光标移动到下一个
快捷方式(如spyder中的f9)。虽然它非常常用的shortcutIt会导致鼠标焦点在一行而不是当前行中时运行下一行。选择有效。如果它是文件中的最后一行,有没有办法让它在之后插入新行?