Code Runner for VS Code, 支持运行 27 种语言 (C, C++, Java , JS, PHP , Python , Perl, Ruby, Go, Lua, Groovy, PowerShell...) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
formulahendry
V2EX    程序员

Code Runner for VS Code, 支持运行 27 种语言 (C, C++, Java , JS, PHP , Python , Perl, Ruby, Go, Lua, Groovy, PowerShell...)

  •  8
     
  •   formulahendry
    formulahendry 2017-01-14 12:36:32 +08:00 17813 次点击
    这是一个创建于 3221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过了半年的打磨,Code Runner已经支持了 27 种语言: C, C++, Java, JS, PHP, Python, Perl, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F#, C#, Vbscript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml, R, AppleScript, Elixir 。并且支持以下几个主要功能:

    • Run code file of current active Text Editor
    • Run selected code snippet in Text Editor
    • Run custom command with customized parameters
    • Stop code running
    • View output in Output Window
    • Set default language to run
    • Select language to run
    • Support REPL by running code in Integrated Terminal

    run code

    如果大家发现了任何 bug 或者有什么建议,欢迎来GitHub给我提 issue 或者 PR 。

    第 1 条附言    2019-01-03 12:38:18 +08:00

    最近还开通了"玩转VS Code"的公众号。希望能和大家分享一下VS Code使用和开发的一些经验,主要希望提供的内容包括但不限于:

    • VS Code 快速入门
    • VS Code 使用技巧
    • VS Code 插件推荐
    • VS Code 插件开发

    有兴趣的童鞋,可以来关注"玩转VS Code"公众号。也希望听听大家的意见,更希望看到什么样的内容。 QR

    59 条回复    2018-03-11 17:21:12 +08:00
    langmoe
        1
    langmoe  
       2017-01-14 12:39:19 +08:00
    我还以为买的 Code Runner 又有更新了。。
    chairchan
        2
    chairchan  
       2017-01-14 13:55:30 +08:00 via Android
    兹词 正在用
    KiriGiri
        3
    KiriGiri  
       2017-01-14 13:57:52 +08:00 via Android
    可以添加一个功能,把运行结果直接替换选中的代码,就像 vim 的:'<,'>!command 。
    asxaqz
        4
    asxaqz  
       2017-01-14 14:10:40 +08:00
    一直在用。支持。
    0915240
        5
    0915240  
      2017-01-14 15:27:31 +08:00
    我曹 !
    兹词~~
    40huo
        6
    40huo  
       2017-01-14 16:03:30 +08:00
    兹词,好用!
    cdwyd
        7
    cdwyd  
       2017-01-14 16:39:50 +08:00
    python 的输出不是实时的吗?测试了下是全部执行完才统一输出
    quericy
        8
    quericy  
       2017-01-14 16:42:11 +08:00
    厉害了,已安装
    exoticknight
        9
    exoticknight  
       2017-01-14 16:45:05 +08:00
    好厉害,是不是应该换了……
    kchum
        10
    kchum  
       2017-01-14 17:12:10 +08:00
    我也以为是 Code Runner 2 。。
    loading
        11
    loading  
       2017-01-14 17:44:25 +08:00 via Android
    比 vs go 是不是强一些呢,看看。
    pipecat
        12
    pipecat  
       2017-01-14 19:46:38 +08:00 via iPhone
    在用,支持
    formulahendry
        13
    formulahendry  
    OP
       2017-01-14 21:12:01 +08:00
    @langmoe @kchum 我们这个 Code Runner 可是免费跨平台的哦
    formulahendry
        14
    formulahendry  
    OP
       2017-01-14 21:19:08 +08:00
    @KiriGiri VIM 没怎么用过,能具体说下吗?比如说,运行 var a = 1 + 2 ,然后把代码替换为 var a = 3?
    blanu
        15
    blanu  
       2017-01-14 21:44:47 +08:00 via iPhone
    Great! VSCode 自带的调试运行时太重,这个看上去就非常方便
    formulahendry
        16
    formulahendry  
    OP
       2017-01-14 21:56:14 +08:00
    @blanu 对滴!而且能选择运行 code snippet ,快捷轻巧
    XYxe
        17
    XYxe  
       2017-01-14 22:08:06 +08:00
    Python 输出的中文会乱码
    另外,不能区分 Python2 和 Python3 吗?
    formulahendry
        18
    formulahendry  
    OP
       2017-01-14 22:42:22 +08:00   1
    @XYxe
    关于乱码,有两个解决方法:
    1. 设置 PYTHONIOENCODING ,参考 https://github.com/formulahendry/vscode-code-runner/issues/33#issuecomment-263131627
    "code-runner.executorMap": {
    "python": "set PYTHOnIOENCODING=utf8 && python"
    }
    2. 设置使用 built-in terminal ,参考 https://github.com/formulahendry/vscode-code-runner/issues/25#issuecomment-257123682
    "code-runner.runInTerminal": true

    关于区分 Python2 和 Python3 ,可以在 user settings 自定义 code-runner.executorMap ,参考 https://github.com/formulahendry/vscode-code-runner#configuration
    XYxe
        19
    XYxe  
       2017-01-14 22:55:45 +08:00
    @formulahendry 啊,谢谢 。不能把 Python2 和 3 设置为不同语言吗?因为不同的文件可能需要不同版本, 每次修改设置会比较麻烦。
    formulahendry
        20
    formulahendry  
    OP
       2017-01-14 23:00:41 +08:00
    @cdwyd 唉, python 真的有这个问题唉,其他语言倒是能实时输出的不过有办法可以 workaround ,在 user settings 设置使用 ntegrated Terminal :
    "code-runner.runInTerminal": true
    cdwyd
        21
    cdwyd  
       2017-01-14 23:07:12 +08:00 via Android
    @formulahendry
    明天试试这个,开启那个 repl 也能解决
    viko16
        22
    viko16  
       2017-01-14 23:18:17 +08:00 via Android
    好棒,赞赞赞
    formulahendry
        23
    formulahendry  
    OP
       2017-01-14 23:21:25 +08:00
    @XYxe Python2 和 3 的文件都是.py 吧?似乎并不能自动区分出来。如果只是不同的 Workspace 会用不同 python 版本,可以在 File-> Preferences->Workspace Settings 设置不同的 python 解释器,这样不知道能满足需求吗?如果在同一个 Workspace 会用不同 python 版本,可以考虑使用 custom command :"code-runner.customCommand": "python3"
    cdwyd
        24
    cdwyd  
       2017-01-14 23:28:36 +08:00
    @formulahendry
    忽略上一条吧 专门起来看了下就是用的"code-runner.runInTerminal": true
    Lattez
        25
    Lattez  
       2017-01-14 23:31:01 +08:00
    赞赞赞!!自己配的话太麻烦,每次开个新的都要重新弄
    XYxe
        26
    XYxe  
       2017-01-14 23:33:37 +08:00
    @formulahendry 可以通过 shebang 来判断吗?
    formulahendry
        27
    formulahendry  
    OP
       2017-01-15 00:05:49 +08:00
    @XYxe 目前对文件类型的判断是直接调用 VS Code 的 API , VS Code 并没有对 python 2 和 python 3 有区分。而且 shebang 在 Windows 上并没有吧。不过可以考虑当作个 feature 来做。欢迎到 github 给我提这个 feature ,如果你想自己实现的话,也非常欢迎 PR !
    formulahendry
        28
    formulahendry  
    OP
       2017-01-15 00:06:33 +08:00
    @cdwyd 哈哈哈
    Lxxyx
        29
    Lxxyx  
       2017-01-15 00:09:14 +08:00 via Android
    刚试了试,感觉很棒,谢谢楼主。
    kuaner
        30
    kuaner  
       2017-01-15 02:46:02 +08:00 via iPhone
    哈哈,原来作者在这呀,非常棒的插件
    anuxs
        31
    anuxs  
       2017-01-15 07:58:53 +08:00 via iPhone
    支持。试试。
    DearMark
        32
    DearMark  
       2017-01-15 09:22:54 +08:00 via Android
    32 个赞\()/
    KiriGiri
        33
    KiriGiri  
       2017-01-15 10:06:33 +08:00
    visitantzj
        34
    visitantzj  
       2017-01-15 12:26:25 +08:00
    赞一个, 小文件直接用着很方便, 文件多再设 proj
    formulahendry
        35
    formulahendry  
    OP
       2017-01-15 12:29:52 +08:00
    @KiriGiri 很有意思的功能!可以考虑实现下!
    formulahendry
        36
    formulahendry  
    OP
       2017-01-15 12:31:41 +08:00
    @visitantzj 对!运行单个小文件非常方便!
    xuboying
        37
    xuboying  
       2017-01-15 12:55:30 +08:00 via iPhone
    这个要具体语言的运行库么,还是楼主的云上运行?
    hxtheone
        38
    hxtheone  
       2017-01-15 13:09:40 +08:00
    这个必须赞
    renyiqiu
        39
    renyiqiu  
       2017-01-15 13:12:25 +08:00
    mark 一下
    formulahendry
        40
    formulahendry  
    OP
       2017-01-15 13:34:13 +08:00
    @xuboying 对的,需要相应的解释器或编译器。比如 JS 需要 Node , C 需要 gcc 。当然也可以根据需要自己设置,比如可以用 clang 替换 gcc 。
    icreeper
        41
    icreeper  
       2017-01-15 14:07:01 +08:00
    感觉比 CodeRunner2 还好用!赞一个
    formulahendry
        42
    formulahendry  
    OP
       2017-01-15 22:42:22 +08:00 via Android
    manongvpn
        43
    manongvpn  
       2017-01-16 07:53:22 +08:00 via Android
    大牛
    araraloren
        44
    araraloren  
       2017-01-16 09:30:09 +08:00
    看起来不错的样子,最近也有点使用 VSCODE 的兴趣~~ mark 一下
    coa
        45
    coa  
       2017-01-16 22:14:08 +08:00
    这个强, Code Runner 2 胜在支持 Objective C ,可惜收费。。求问 Atom 下有没有类似的东西。。。
    WeeH9T
        46
    WeeH9T  
       2017-02-07 11:05:59 +08:00
    @formulahendry vs2015 没找到 CTRL+P ,怎么安装。。。
    formulahendry
        47
    formulahendry  
    OP
       2017-02-07 11:38:15 +08:00
    @hambut 这个插件是 Visual Studio Code 的: https://code.visualstudio.com/ ,不是 VS IDE
    WeeH9T
        48
    WeeH9T  
       2017-02-07 14:47:00 +08:00
    @formulahendry #47 好尴尬啊。。刚才下了 VS CODE 试了下,别的都挺满意, CTRL SHIFT O 有些认不出来,没有 minimap 暂时性流失。。
    formulahendry
        49
    formulahendry  
    OP
       2017-02-07 15:58:45 +08:00
    @hambut 看什么语言了吧, Node.js 有 built-in 支持,其它语言的'Go to Symbol'还是要另外装插件
    vito0719
        50
    vito0719  
       2017-05-11 16:02:12 +08:00
    能在 windows 下运行 swift 吗?
    formulahendry
        51
    formulahendry  
    OP
       2017-05-12 00:02:43 +08:00
    @vito0719 Bash on Windows :)
    vito0719
        52
    vito0719  
       2017-05-12 18:13:52 +08:00
    @formulahendry 我在 bash 里已经可以用 swift 了,请问在 vs code 里还需要改什么?
    formulahendry
        53
    formulahendry  
    OP
       2017-05-13 20:00:13 +08:00
    @vito0719
    1. 设置 Integrated Terminal 用 Bash on Ubuntu (on Windows): https://code.visualstudio.com/docs/editor/integrated-terminal#_windows:"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
    2. 设置 Code Runner 用 Integrated Terminal:"code-runner.runInTerminal": true
    vito0719
        55
    vito0719  
       2017-05-15 15:15:03 +08:00
    @formulahendry 好像问题是路径?我运行得到的回复是这样的:
    Playground.swift"-CZZ:/mnt/c/Users/vito0719$ swift "c:\Users\vito0719\Documents\
    <unknown>:0: error: no such file or directory: 'c:\Users\vito0719\Documents\Playground.swift'

    好像要改成 /mnt/c/Users/这样的路径才行,这个有方法吗?
    formulahendry
        56
    formulahendry  
    OP
       2017-05-15 22:35:58 +08:00
    @vito0719 的确目前有 limitation,现在有 issue 在 track: https://github.com/formulahendry/vscode-code-runner/issues/106
    jin7
        57
    jin7  
       2017-07-22 23:53:52 +08:00
    @formulahendry 嗨~. 我发现 powershell 中文乱码了.
    ps1 文件, 编码是 ucs2-le, 代码页是 1200
    设置
    ```
    "code-runner.runInTerminal": true,
    "code-runner.executorMap": {
    "powershell": "chcp 1200>nul && powershell -ExecutionPolicy ByPass -File"
    }
    ```
    输出是一行乱码: Ч
    设置成 chcp 65001 可以输出, 只是中文当作 ansi 编码解析了.

    为什么我要把 ps1 文件保存为 ucs2-le 编码, 因为, powershell 好像不认 utf8 编码, 中文会乱码. 用 ucs2-le 就没事.
    jin7
        58
    jin7  
       2017-07-23 11:13:21 +08:00
    我发现 chcp 1200 为无效代码页.
    但是我把文件保存为 utf8, 并且设置如下, 也没有用
    ```
    "code-runner.runInTerminal": true,
    "code-runner.executorMap": {
    "powershell": "chcp 65001>nul && powershell -ExecutionPolicy ByPass -File"
    }
    ```
    bestswifter
        59
    bestswifter  
       2018-03-11 17:21:12 +08:00
    可否把 runCustomCommand 命令和 run 命令的快捷键设置为同一个呢?

    我有一个需求是,如果没有指定 customCommand,就按照 executorMap 里面的配置来执行,如果有 customCommand,则优先执行 customCommand。

    我知道 keybindings.json 里面有一个 when 字段,但是不知道该填什么值
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5877 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:04 PVG 10:04 LAX 18:04 JFK 21:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86