我正在使用tcell
库来显示终端单元图形。
在用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, 0, tcell.StyleDefault, 'X')
screen.SetCell(1, 0, tcell.StyleDefault, 'X')
screen.SetCell(1, 1, tcell.StyleDefault, 'X')
screen.SetCell(10, 10, tcell.StyleDefault, 'X')
screen.Show()
time.Sleep(time.Second*5)
}
GoLand输出:
当通过cmd运行时,程序可以正常工作:
如何在GoLand中设置运行配置,以便在cmd或其他形式的终端中运行我的程序,从而允许我像这样设置单元?
发布于 2021-03-29 18:30:21
Help | Find Action...
go.run.processes.with.pty
并将其打开。请记住,这可能会导致运行配置出现问题,比如失败的绿色测试,反之亦然,永远不会完成调试会话,等等。如果您注意到与控制台输出相关的奇怪IDE行为,请重新禁用注册表选项。
我不确定Y轴上的点是否在运行窗口内正确显示。
发布于 2021-03-29 06:59:51
我猜GoLands终端是一个没有真正的光标寻址能力的假终端。如果是这样的话,可能没有一个好的解决方案。
我是tcell的作者,我使用goland,但我承认我总是在真实的终端中运行我的测试程序,而不是在IDE提供的玩具终端中运行。无论我使用goland,visual studio代码,甚至是令人尊敬的emacs,这都是真的。
发布于 2021-03-29 06:06:04
通过使用新的批处理运行配置,您可以运行批处理文件来构建程序,然后在新的cmd窗口中运行该程序。
在GoLand的运行配置中,将“工作目录”设置为主软件包目录。然后将脚本设置为新的批处理文件。
以下是我的软件包client
的批处理文件中的代码
go build
start cmd /C client.exe
运行此配置将构建程序包,然后在一个新的外部cmd窗口中运行程序,在该窗口中可以正确显示单元。
这个解决方案不是很好,因为GoLand运行配置系统的大部分优势都消失了,包括调试、进程管理(停止/重新启动)和其他构建选项。
有人有更好的解决方案吗?
https://stackoverflow.com/questions/66846658
复制相似问题