英文:
How do I clear the terminal screen down from my cursor position?
问题
在Go语言中,你可以使用ANSI转义码来清除屏幕。要清除当前光标位置以下的屏幕内容,你可以使用以下代码:
package main
import (
"fmt"
"os"
"os/exec"
"runtime"
)
func main() {
clearScreen()
fmt.Printf("?")
}
func clearScreen() {
switch runtime.GOOS {
case "windows":
cmd := exec.Command("cmd", "/c", "cls")
cmd.Stdout = os.Stdout
cmd.Run()
default:
cmd := exec.Command("clear")
cmd.Stdout = os.Stdout
cmd.Run()
}
}
这段代码中,clearScreen()
函数根据操作系统的不同来执行相应的清屏操作。在Windows系统中,使用cmd
命令cls
来清屏;在其他操作系统中,使用clear
命令来清屏。
你可以将需要清屏的代码放在clearScreen()
函数调用之前,这样就可以在输出?
之前清除屏幕下方的内容了。
英文:
In nodejs, I can clear my screen down with <WriteStream>.clearScreenDown()
, i.e., process.stdout.clearScreenDown()
.
How would I achieve this in go?
I assume I need an ansi escape code, but I can not find any for this problem.
I have tried \033[2J
, but the clears the entire screen. I only want to clear the screen down from my current cursor position.
import "fmt"
func main() {
fmt.Printf("?")
}
答案1
得分: 2
\033[2J
是正确的开始,只需要将2替换为0。
import "fmt"
func main() {
fmt.Print("3[0J")
}
英文:
\033[2J
was the right start, just need to replace the 2 with a 0.
import "fmt"
func main() {
fmt.Print("\033[0J")
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论