为了方便学习 go, 使用 go 做了一个命令行版本的 go playground, 代码直接一键运行, 一键编译 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
iorilu
V2EX    Go 编程语言

为了方便学习 go, 使用 go 做了一个命令行版本的 go playground, 代码直接一键运行, 一键编译

  •  
  •   iorilu 15 小时 51 分钟前 698 次点击
    https://github.com/aizimuji/goplay



    Goplay cli

    开发原因: 学习编译语言经常要练习语法, 写小片段代码执行看结果, 检查错误等等, 但编译语言无法直接像解释语言直接执行看结果, 需要麻烦的编辑文件, 保存文件, 编译, 执行一系列流程才能执行哪怕一行代码, 非常麻烦, 往往很多人就因为这个就失去兴趣

    我做这个目的是可以最简化流程

    打开 goplay , 按`ctrl+t`, 加载模板代码, 编辑, 按`ctrl+r` 直接执行, 检查结果, 有错可以编辑反复执行, 都完成可以按`ctrl+s` 保存, 或者`ctrl+b` 直接编程成可执行文件都可以

    非常方便学习 go 语言, 当然其他语言有兴趣的可以改造下也行, 尤其适合编译语言如 rust 等

    功能特性
    分屏界面: 左侧编辑代码,右侧查看输出。
    即时执行: 一键运行 (go run) 或编译检查 (go build) 代码。
    文件管理: 轻松打开、保存和创建新文件。
    模板支持: 快速加载预定义的 .template 文件或使用内置默认模板。
    构建功能: 将代码构建为独立的可执行文件 (Ctrl+b)。
    系统剪贴板支持: 支持与系统剪贴板的复制/粘贴交互。
    编辑器工具:
    使用 go fmt 自动格式化。
    基于快照的撤销/重做。
    实时光标行号追踪。
    修改状态指示。
    内置帮助: 随时通过 F1 查看快捷键参考。


    使用指南
    直接运行可执行文件启动应用。你可以立即开始编写 Go 代码。

    快捷键列表
    快捷键 动作 说明
    Ctrl+r 运行 运行当前代码并显示输出。
    Ctrl+k 编译检查 编译代码以检查错误/成功状态。
    Ctrl+b 构建应用 将代码构建为独立的可执行文件。
    Ctrl+f 格式化 使用 go fmt 格式化代码。
    Ctrl+s 保存 保存当前代码到文件。
    Ctrl+o 打开 打开现有文件。
    Ctrl+n 新建 清空编辑器以创建新文件。
    Ctrl+t 模板 加载模板 (自定义或默认)。
    Ctrl+l 清空 清空编辑器内容。
    Ctrl+z 撤销 撤销上一步操作。
    Ctrl+y 重做 重做上一步操作。
    Ctrl+q 退出 退出应用程序。
    Ctrl+c 复制 将选中的文本复制到系统剪贴板。
    F1 / Alt+h 帮助 显示快捷键帮助窗口。
    F2 / Alt+[ 缩小窗口 减小左侧编辑器窗口宽度。
    F3 / Alt+] 扩大窗口 增加左侧编辑器窗口宽度。
    Esc 关闭 关闭弹窗或帮助菜单。
    详细功能说明
    1. 模板功能 (Template)
    按 Ctrl+t 加载模板。

    默认模板: 如果当前工作目录下没有 .template 文件,程序将加载内置的 "Hello Goplay" 示例代码。
    自定义模板: 在当前目录下创建一个名为 .template 的文件,即可使用你自己的样板代码。
    2. 编译与构建 (Compile & Build)
    编译检查 (Ctrl+k): 仅执行编译过程以检查语法错误,不生成文件。
    构建应用 (Ctrl+b): 会提示你输入输出文件名,然后在当前目录(或指定的工作目录)生成 .exe (Windows) 或二进制文件。
    3. 窗口调整 (Adjust Window)
    你可以调整左右分屏的比例:

    按 F2 (或 Alt+[) 向左收缩编辑器,增大输出窗口。
    按 F3 (或 Alt+]) 向右扩展编辑器,减小输出窗口。
    4. 复制与粘贴 (Copy & Paste)
    复制: 在编辑器中选中文本,按 Ctrl+c 将其复制到系统剪贴板。
    注意: 只有当编辑器拥有焦点时 Ctrl+c 才会执行复制,否则它不会退出程序。
    粘贴: 使用系统标准的粘贴快捷键(如 Ctrl+v 或终端右键粘贴)将代码粘贴到编辑器中。
    5. 退出程序 (Quit)
    使用 Ctrl+q 安全退出应用程序。
    iorilu
        1
    iorilu  
    OP
       15 小时 46 分钟前
    程序完全由 antigravity, gemini pro3 开发

    我用的初始提示词 也在仓库里 prompt.txt

    有兴趣可以参考, 感觉 go 确实很适合开发命令行小程序, 尤其现在一些 TUI 界面库做的很不多了, 包括功能和美观上面
    sn0wdr1am
        2
    sn0wdr1am  
       8 小时 28 分钟前
    https://go.dev/play/

    也能凑合用
    iorilu
        3
    iorilu  
    OP
       8 小时 25 分钟前
    @sn0wdr1am 这当然

    如果本地没装 go, 用 web 的还行

    但 web 程序总是慢的, 用起来总是不爽快

    所以我搞了个本地版本的 , 执行起来效率高很多, 非常适合出学者练习语法, 写一点小程序, 自带模板, 一键执行, 编译检查错误等等

    必要也可以一键编译啥的
    iorilu
        4
    iorilu  
    OP
       8 小时 15 分钟前
    提示

    已安装 go 的可以通过命令一键安装

    go install github.com/aizimuji/goplay@latest

    然后命令行执行 goplay , 即可开始使用
    lysShub
        5
    lysShub  
       7 小时 30 分钟前
    这种情况,我一般在 test 里面验证
    vultr
        6
    vultr  
       7 小时 10 分钟前
    你强,三年前我计划重写 json 的序列化反序列化,到现在还是在用标准库。
    iorilu
        7
    iorilu  
    OP
       6 小时 19 分钟前
    @vultr 反正都是 AI 写的代码, 现在 AI 做这种命令行程序用 go 或 rust 确实合适

    基本不写一行代码就搞出来了, 效果还很不错

    反正我打算用这个把 gobyexample 里面代码都敲一遍
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     938 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 18:13 PVG 02:13 LAX 10:13 JFK 13:13
    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