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 · 1 天前 · 997 次点击
    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 安全退出应用程序。
    8 条回复    2025-12-15 11:24:49 +08:00
    iorilu
        1
    iorilu  
    OP
       1 天前
    程序完全由 antigravity, gemini pro3 开发

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

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

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

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

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

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

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

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

    go install github.com/aizimuji/goplay@latest

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

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

    反正我打算用这个把 gobyexample 里面代码都敲一遍
    vultr
        8
    vultr  
       6 小时 14 分钟前
    有兴趣实现用代码生成技术实现 json 序列化反序列化吗?

    1. 零分支(或极少分支预测失败):避免 if-else 导致的 CPU 流水线停顿。
    2. 批量处理:用 SIMD 一次处理 32/64/128 字节数据。
    3. 最小分配:零反射、零临时对象、直接操作字节切片。
    4. On-Demand 解析:只解析用户需要的部分,而不是构建完整 DOM 树。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 508ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    ♥ Do have faith in what you're doing.