V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Keyss
V2EX  ›  Linux

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

  •  
  •   Keyss · 2019-06-17 15:17:42 +08:00 · 3037 次点击
    这是一个创建于 2018 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    client screen shot

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