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

2025 年 12 月 14 日
 iorilu
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 安全退出应用程序。
3105 次点击
所在节点    Go 编程语言
10 条回复
iorilu
2025 年 12 月 14 日
程序完全由 antigravity, gemini pro3 开发

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

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

也能凑合用
iorilu
2025 年 12 月 14 日
@sn0wdr1am 这当然

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

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

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

必要也可以一键编译啥的
iorilu
2025 年 12 月 14 日
提示

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

go install github.com/aizimuji/goplay@latest

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

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

反正我打算用这个把 gobyexample 里面代码都敲一遍
vultr
2025 年 12 月 15 日
有兴趣实现用代码生成技术实现 json 序列化反序列化吗?

1. 零分支(或极少分支预测失败):避免 if-else 导致的 CPU 流水线停顿。
2. 批量处理:用 SIMD 一次处理 32/64/128 字节数据。
3. 最小分配:零反射、零临时对象、直接操作字节切片。
4. On-Demand 解析:只解析用户需要的部分,而不是构建完整 DOM 树。
iorilu
2025 年 12 月 24 日
v0.3.0 发布了

增加若干功能
1. 更多快捷键, 比如 F2, F3 可以调整左右窗口大小
2. F4 加载模板
3. F5 运行等等
4. 增加命令行参数, ./goplay file 直接打开文件, ./goplay folder 打开目录作为工作目录, 这时候打开文件相对路径是针对工作目录

基本满足学习 go 要求, 甚至简单开发都可以
iorilu
2025 年 12 月 24 日
最简运行例子

1. 运行./goplay
2. 按 F4 加载模板
3. 编辑代码
4. 按 F5 运行, 是的, 不需要保存文件就可以运行

按以上可以反复练习语法语句等, 也可按 F6 编译查看错误

最后结束可以按 Ctrl+s 保存, 如果有需要按 F7 编译成可执行文件

F9 可以设置工作目录, 后续文件打开保存都是相对该目录

总之, 用这个大幅度提高学习 go,练习代码效率

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1178762

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX