Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
Keyss
V2EX  ›  Linux

怎么在终端输出时可以分区块更新内容?

  •  
  •   Keyss · Jun 17, 2019 · 4066 views
    This topic created in 2698 days ago, the information mentioned may be changed or developed.

    如图所示,经常看到这样展示的程序,但是不知道该怎么写代码
    只知道\r可以刷新本行

    这样刷新全屏幕到底是怎么实现的?不可能是一次刷一屏吧? 我所使用的编程语言有 go,java,python,尝试了很多种方法都弄不出来,求解

    client screen shot

    Supplement 1  ·  Jun 17, 2019
    https://github.com/robaho/go-trader
    这个项目是用 go 写的,应该是简单的控制台输出吧?
    8 replies  •  2019-06-17 18:36:31 +08:00
    Northxw
    Northxw
    Jun 17, 2019
    1
    有 vim 命令,自己谷歌
    dorentus
    dorentus
    Jun 17, 2019 via iPhone
    2
    去看看 libncurses
    ysc3839
    ysc3839
    Jun 17, 2019
    3
    这种应该是用 ansi escape sequences 或者叫 vt sequences 实现的吧。
    Keyss
    Keyss
    OP
    Jun 17, 2019
    4
    @Northxw 你的意思是相当于在屏幕上修改文本?
    Vegetable
    Vegetable
    Jun 17, 2019
    5
    比较成熟的项目之前留意到 node 有一个
    https://www.npmjs.com/package/dynamic-terminal
    核心就是 3 楼说的东西,和浏览器里边 react 的思路是差不多的,大概就是文本 diff,然后刷新发生了变化的地方.
    Northxw
    Northxw
    Jun 17, 2019
    6
    @Northxw 额 记错了。你再找找吧
    Keyss
    Keyss
    OP
    Jun 17, 2019
    7
    @Vegetable 但是这个是在 console 里面更新的,更前端的不一样啊,console 的话是标准准备要修改得回到上面一行,所以也就是这个他就是在一行里面输出的
    Keyss
    Keyss
    OP
    Jun 17, 2019
    8
    OK
    谢谢大家
    可以在 GitHub 搜索对应的 tui 或者 cui,cli,之类的关键字
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1540 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 18:00 · PVG 02:00 · LAX 10:00 · JFK 13:00
    ♥ Do have faith in what you're doing.