V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
moyuman
V2EX  ›  程序员

最“流畅”的终端模拟器是什么?

  •  
  •   moyuman · 1 天前 · 5481 次点击

    这里的“流畅”指的不是计算层面的 fast ,而是图形层面的流畅,丝滑的感觉。

    我能想到最接近的例子就是 neovide 这种,但它只是一个 nvim 的 GUI 而已,而不是终端模拟器。

    我对终端的使用其实很少,就是 nvim + tmux 。我喜欢 textbase 的 ui ,因为它直接了当,简介清楚,速度也快。

    但现在用多了各种软件和系统上丝滑的动画(比如 iOS ,电子游戏之类)配合现在各种高刷新率的设备之后。再回到 textbase 的终端上就总觉得卡卡的,非常不舒服。

    有没有一个终端模拟器能把这种更现代的丝滑 UI 体验带到终端上呢?

    53 条回复    2024-12-11 21:42:51 +08:00
    ab
        1
    ab  
       1 天前
    https://github.com/alacritty/alacritty

    在用这个,觉得还不错。
    EchoWhale
        2
    EchoWhale  
       1 天前 via iPhone
    大部分时间都是 vim/neovim 卡,插件越少越滑
    zhouhuab
        3
    zhouhuab  
       1 天前
    @ab mac 上字体没有自带 emulator 清晰,感觉 mac 上还是自带的最好
    sNullp
        4
    sNullp  
       1 天前   ❤️ 4
    这截图看得我晕车……
    NanFengxuan
        5
    NanFengxuan  
       1 天前
    那必须是 wezterm ,rust 写的,R 神启动
    noahlias
        6
    noahlias  
       1 天前
    kitty
    ooxxcc
        7
    ooxxcc  
       1 天前   ❤️ 1
    adoal
        8
    adoal  
       1 天前   ❤️ 1
    有没有可能,让你觉得卡顿的,不是真卡顿,而是基于单元格的滚动导致的跳跃感
    Greendays
        9
    Greendays  
       1 天前
    这光标太调皮了吧
    kuanat
        10
    kuanat  
       1 天前   ❤️ 4
    我推荐 foot https://codeberg.org/dnkl/foot 另外这个作者其他项目也都非常好。


    设计哲学层面我不是很认可 kitty/alacritty 的路线,恰好这个话题我在之前的讨论 zed 编辑器的帖子里提到过 https://v2ex.com/t/1056672 可以做参考。

    foot 的作者也有专门写过文章论述 https://codeberg.org/dnkl/foot/wiki/Performance


    除开渲染层面,foot 的作者同时维护 fcft 一个 rasterization 的库,这个库对于字符的处理我认为是目前最好的,foot 的字符显示就是基于 fcft 。

    还有 foot 对于 OSC/escape sequence 的支持非常标准化,很方便做定制或者与其他应用交互。
    Rorysky
        11
    Rorysky  
       1 天前
    你这个光标帅呀!
    Immortal
        12
    Immortal  
       1 天前
    你觉得目前终端慢其实是 tmux 慢,再快的终端套上 tmux 这一层都在一个起跑线了
    如果是客户端本地开发,而且对 tmux 的 session 不是刚需,现代终端的 tab 等基本都可以替代掉 tmux 的功能,不用这么沉迷 old school 的工具
    moyuman
        13
    moyuman  
    OP
       1 天前
    @adoal 滚动确实是个很重要的原因,如果有把这个问题解决的终端模拟器,估计用起来也不错
    moyuman
        14
    moyuman  
    OP
       1 天前
    @ooxxcc 哎,这个可以哦,感谢提醒
    lucifer9
        15
    lucifer9  
       1 天前 via iPhone
    ghostty
    adoal
        16
    adoal  
       1 天前
    @kuanat 说起来,见识过 OSC 52 的效果之后,再也看不上 :set paste 了
    git00ll
        17
    git00ll  
       1 天前
    xshell ,用习惯了感觉挺好
    Configuration
        18
    Configuration  
       1 天前
    PuTTY
    kuanat
        19
    kuanat  
       1 天前
    @adoal #16

    OSC 52 确实是非常好的,终端里也不区分本地和远程。

    当然我觉得这事属于历史问题,特别是 linux 环境。clipboard 是个桌面层面的实现,x11/wayland 还不一样,所以 vim 与系统剪贴板的交互是比较低效的 ipc ,而且需要编译期增加支持。理论上如果把 * 寄存器与系统寄存器关联也可以,但 vim 的设计 delete 会和 yank 同样使用 * 寄存器,这就导致按一下 x 也会触发一次 ipc ,一方面造成卡顿,另一方面用户也不想删除的内容进系统剪贴板。
    kuanat
        20
    kuanat  
       1 天前
    @moyuman #13

    平滑滚动是靠视觉残留形成的错觉,所以平滑滚动光标很容易做,但是平滑滚动内容本身是很难的。

    由于终端里的内容基本不存在关联性,平滑滚动这个事情在不牺牲速度的前提下我个人认为不可行。
    moyuman
        21
    moyuman  
    OP
       1 天前
    @sNullp 帧数太低了哈哈哈哈
    moyuman
        22
    moyuman  
    OP
       1 天前
    @adoal #8 想了一下确实是这样,我所谓的“不流畅”就是这种基于行的渲染模式在变化时缺少过渡导致的。
    例如滚动
    例如光标的跳跃
    例如 nvim 中各种 ui 和布局的变化
    等等
    都缺少过渡,正是这种生硬的变化让我有卡卡的感觉
    james122333
        23
    james122333  
       1 天前 via Android
    终端没有不顺畅的
    bigtear
        24
    bigtear  
       1 天前
    Warp ?输入命令直接是文本编辑器
    james122333
        25
    james122333  
       1 天前 via Android
    @Immortal

    tmux 有 buffer 其实并不卡 只是有视觉体感 计时测试就知 个人觉得有 buffer 更好 在处理大量 print 出来的东西有加成
    Sendya
        26
    Sendya  
       1 天前
    @NanFengxuan 试了下好像不支持 lrzsz 之类的
    mahaoqu
        27
    mahaoqu  
       1 天前
    wt.exe 还不够流畅么
    aloxaf
        28
    aloxaf  
       1 天前
    @Immortal 对,我以前用 alacritty + tmux 。后面发现套了 tmux 大家速度都差不多了,于是又滚回去用 konsole 了,支持的特性还多一点。
    Immortal
        29
    Immortal  
       1 天前
    @james122333 #25
    不,就是巨慢.
    我的工作流也是在终端下,tmux 里开个 Neovim 在 C-D/U 翻页的时候会直接有卡顿感,有时候甚至画面能有点小撕裂.Mac 平台
    Immortal
        30
    Immortal  
       1 天前
    @aloxaf #28
    其实可以慢慢尝试不用 tmux.
    我之前也用,现在是裸的 kitty,还是很丝滑的.
    weilongs
        31
    weilongs  
       1 天前
    我从 alacritty 换到了 wezterm
    encro
        32
    encro  
       1 天前
    这东西,为啥不直接 windows terminal+vscode remote ?
    ns09005264
        33
    ns09005264  
       1 天前
    我还没见过终端模拟器可以有像 Neovide 那样的动画和平滑滚动效果。如果有的话我一定会试试。
    lecia
        34
    lecia  
       1 天前 via iPhone
    @Immortal 想问下 kitty 下,怎样做重新连接服务器,恢复会话
    ThinkCat
        35
    ThinkCat  
       1 天前
    @ns09005264 楼上说的 kitty 的 pr ,现在已经支持了,体感上和 neovide 一样
    ericguo
        36
    ericguo  
       1 天前
    苹果 MacOS 自带的 Terminal ,如果你还考虑一下省电,安全,匿名等因素的话。
    james122333
        37
    james122333  
       1 天前 via Android
    @Immortal

    我的没这问题 虽然不是 nvim 也不是 mac
    只有随便整 plugin 的会出现这现象 x11 图形终端都不错
    kneo
        38
    kneo  
       1 天前   ❤️ 2
    动画真是浪费时间的好方式。

    从效率上讲,光标动画唯一的作用是能让你更容易找到光标。但是和桌面用户不同,对于终端用户来讲,大多数情况用户在移动光标前都清楚光标的起点,也预知它的终点。所以这种动画除了分散用户注意力,并没有效率上的帮助。

    对效率有帮助的一个典型例子是 jetbrains 终端里的 typeahead 。

    当然程序员和男人一样,有时候做事就是图个乐子,效率不是唯一的衡量标准。
    FightPig
        39
    FightPig  
       1 天前
    各种切换用,wezterm 个人挺喜欢的
    jeesk
        40
    jeesk  
       1 天前 via Android
    我更加看重稳定性比如 gnome shell.
    hxtheone
        41
    hxtheone  
       1 天前 via iPhone
    目前是 kitty+zellij
    Immortal
        42
    Immortal  
       23 小时 13 分钟前
    @lecia #34
    kitty 目前应该还无法处理 session,所以我上面说了个前提来着.
    feikaras
        43
    feikaras  
       22 小时 48 分钟前 via iPhone
    不如传统 terminal
    unbridle
        44
    unbridle  
       22 小时 46 分钟前 via iPhone
    必须是 warp ,warp 先在本地编辑文本再一起发送到服务器,除非机制相同,其它终端必然存在延迟,不可能比 warp 快
    diivL
        45
    diivL  
       21 小时 22 分钟前
    @lucifer9 这个还没用上,说这个月开源。
    lancelock
        46
    lancelock  
       20 小时 16 分钟前
    @Immortal 那如果是注重 session ,有什么替代方案吗
    Immortal
        47
    Immortal  
       19 小时 33 分钟前
    @lancelock #46
    我的印象里没有,还是继续用 tmux 吧
    Bssn
        48
    Bssn  
       18 小时 5 分钟前 via iPhone
    借楼问一下, kitty ssh 连接 ubuntu 使用 lazyvim 的时候, 选中文字按 y 但是复制不生效是什么原因?🥹
    limatrix81
        49
    limatrix81  
       16 小时 51 分钟前
    @lucifer9 哥能帮忙拉个内测吗,discord matrix_seu , 进内测要在群里聊天发消息,发了好几天了也不给进,只能看看有没有 V 友邀请进入了
    pckillers
        50
    pckillers  
       16 小时 49 分钟前
    如果楼主只是追求特效的话,推荐 Cool Retro Term
    Appimage 版
    https://github.com/Swordfish90/cool-retro-term/releases/tag/1.1.1
    snap 版
    https://github.com/Swordfish90/cool-retro-term

    有很多风格可以选择。 当然除了特效好,这个终端真的只有基础功能,要作为主力终端需要点胆识。
    pckillers
        51
    pckillers  
       16 小时 48 分钟前
    上面 snap 版贴错了,更正一下
    https://github.com/kz6fittycent/cool-retro-term
    beginor
        52
    beginor  
       10 小时 24 分钟前 via Android
    warp +1 , 目前支持 Linux + Mac , 不过官方说 Win 也在路上了。

    在 JetBrains IDE 2024.3 中的“新终端” 就是复制了 warp
    GiantHard
        53
    GiantHard  
       8 小时 42 分钟前
    @lecia #34 我目前的解决方案是 kitty 搭配 `zellij attach -c session_name`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 22:25 · PVG 06:25 · LAX 14:25 · JFK 17:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.