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

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

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