如何使用Golang清除终端中的最后一行

huangapple go评论83阅读模式
英文:

How to clear last line in terminal with Golang

问题

我正在构建一个CLI应用程序(在Linux上),用户需要选择某个选项,然后我需要清除上一行。

我尝试了几种方法:

  fmt.Print("\r")
  fmt.Print("3[1")

光标会回到行的开头,但是并没有清除上一行的文本。

我在这里漏掉了什么?

英文:

I'm building CLI app (on Linux) where user has to choose something and then I have to clear last line.

I tried several things:

  fmt.Print("\r")
  fmt.Print("3[1")

And the cursor goes back to beginning of line, but do not clear the text from the last line.

What am I missing here?

答案1

得分: 2

你可以这样使用它:

fmt.Printf("3[1A3[K")

\033[1A - 上移一行
\033[K - 删除该行

例如:

fmt.Println("hello")
fmt.Println("world")
fmt.Printf("3[1A3[K")

将只输出 hello,因为 world 将被删除。

你可以在这里阅读更多关于 ASCII 转义的内容:https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

英文:

You can use it that way

fmt.Printf("3[1A3[K")

\033[1A - one line up
<br>
\033[K - delete the line

For example

fmt.Println(&quot;hello&quot;)
fmt.Println(&quot;world&quot;)
fmt.Printf(&quot;3[1A3[K&quot;)

will output only hello as the world will be deleted

You can read more about ascii escaping here https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

huangapple
  • 本文由 发表于 2023年2月1日 01:04:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/75300588.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定