问题描述
在 GoLand 中编写这个项目时,我注意到使用正常的运行配置并在集成终端中运行程序,我没有看到单元格按预期设置,尽管 tcell 没有给出任何错误。>
程序:
package main
import (
"time"
"github.com/gdamore/tcell"
)
func main() {
screen,err := tcell.NewScreen()
if err != nil {
panic(err)
}
err = screen.Init()
if err != nil {
panic(err)
}
screen.SetCell(0,tcell.StyleDefault,'X')
screen.SetCell(1,1,'X')
screen.SetCell(10,10,'X')
screen.Show()
time.Sleep(time.Second*5)
}
GoLand 输出:
该程序在通过 cmd 运行时按预期工作:
如何在 GoLand 中设置运行配置以在 cmd 或其他某种形式的终端中运行我的程序以允许我像这样设置单元格?
解决方法
- 打开
Help | Find Action...
- 输入 Registry 并按 Enter。
- 在那里找到
go.run.processes.with.pty
并将其打开。
请记住,它可能会导致运行配置出现问题,例如绿色测试失败,反之亦然,永远无法完成调试会话,等等。如果您发现与控制台输出相关的奇怪 IDE 行为,请禁用注册表选项。
我不确定 Y 轴上的点是否在“运行”窗口中正确显示。
,我猜 GoLands 终端是一个假终端,没有真正的光标寻址能力。如果是这种情况,可能没有好的解决方案。
我是 tcell 的作者,我使用 goland,但我承认我总是在真实终端而不是 IDE 提供的玩具终端中运行我的测试程序。无论我使用 goland、visual studio code 还是古老的 emacs,都是如此。
,通过使用新的批处理运行配置,您可以运行批处理文件来构建程序,然后在新的 cmd 窗口中运行该程序。
在 GoLand 的运行配置中,将“工作目录”设置为主包目录。然后将脚本设置为新的批处理文件。
这是我的包 client
的批处理文件中的代码
go build
start cmd /C client.exe
运行此配置将构建包,然后在单元格正确显示的新外部 cmd 窗口中运行程序。
这个解决方案不是很好,因为 GoLand 运行配置系统的大部分优势都丢失了,包括调试、进程管理(停止/重启)和其他构建选项。
有人有更好的解决方案吗?