GoLand 设置终端单元不起作用 如何在 GoLand 中设置运行配置以在 cmd 或其他某种形式的终端中运行我的程序以允许我像这样设置单元格?

问题描述

我正在使用 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,tcell.StyleDefault,'X')
    screen.SetCell(1,1,'X')
    screen.SetCell(10,10,'X')
    screen.Show()

    time.Sleep(time.Second*5)
}

GoLand 输出

GoLand terminal,doesn't show Xs

该程序在通过 cmd 运行时按预期工作:

enter image description here

如何在 GoLand 中设置运行配置以在 cmd 或其他某种形式的终端中运行我的程序以允许我像这样设置单元格?

解决方法

  1. 打开Help | Find Action...
  2. 输入 Registry 并按 Enter。
  3. 在那里找到 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 运行配置系统的大部分优势都丢失了,包括调试、进程管理(停止/重启)和其他构建选项。

有人有更好的解决方案吗?