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

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

  •  
  •   moyuman · 36 天前 · 6598 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    56 条回复    2024-12-13 10:56:58 +08:00
    ab
        1
    ab  
       36 天前
    https://github.com/alacritty/alacritty

    在用这个,觉得还不错。
    EchoWhale
        2
    EchoWhale  
       36 天前 via iPhone
    大部分时间都是 vim/neovim 卡,插件越少越滑
    zhouhuab
        3
    zhouhuab  
       36 天前
    @ab mac 上字体没有自带 emulator 清晰,感觉 mac 上还是自带的最好
    sNullp
        4
    sNullp  
       36 天前   ❤️ 4
    这截图看得我晕车……
    NanFengxuan
        5
    NanFengxuan  
       36 天前
    那必须是 wezterm ,rust 写的,R 神启动
    noahlias
        6
    noahlias  
       36 天前
    kitty
    ooxxcc
        7
    ooxxcc  
       36 天前   ❤️ 1
    adoal
        8
    adoal  
       36 天前   ❤️ 1
    有没有可能,让你觉得卡顿的,不是真卡顿,而是基于单元格的滚动导致的跳跃感
    Greendays
        9
    Greendays  
       36 天前
    这光标太调皮了吧
    kuanat
        10
    kuanat  
       36 天前   ❤️ 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  
       36 天前
    你这个光标帅呀!
    Immortal
        12
    Immortal  
       36 天前
    你觉得目前终端慢其实是 tmux 慢,再快的终端套上 tmux 这一层都在一个起跑线了
    如果是客户端本地开发,而且对 tmux 的 session 不是刚需,现代终端的 tab 等基本都可以替代掉 tmux 的功能,不用这么沉迷 old school 的工具
    moyuman
        13
    moyuman  
    OP
       36 天前
    @adoal 滚动确实是个很重要的原因,如果有把这个问题解决的终端模拟器,估计用起来也不错
    moyuman
        14
    moyuman  
    OP
       36 天前
    @ooxxcc 哎,这个可以哦,感谢提醒
    lucifer9
        15
    lucifer9  
       36 天前 via iPhone
    ghostty
    adoal
        16
    adoal  
       36 天前
    @kuanat 说起来,见识过 OSC 52 的效果之后,再也看不上 :set paste 了
    git00ll
        17
    git00ll  
       36 天前
    xshell ,用习惯了感觉挺好
    Configuration
        18
    Configuration  
       36 天前
    PuTTY
    kuanat
        19
    kuanat  
       36 天前
    @adoal #16

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

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

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

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

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

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

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

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

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

    在 JetBrains IDE 2024.3 中的“新终端” 就是复制了 warp
    GiantHard
        53
    GiantHard  
       35 天前
    @lecia #34 我目前的解决方案是 kitty 搭配 `zellij attach -c session_name`
    CrispyNoodles
        54
    CrispyNoodles  
       34 天前
    @NanFengxuan 你一句 R 神,让我学了 lua ,配置文件搞了一上午
    ns09005264
        55
    ns09005264  
       34 天前
    @ThinkCat 试用了几下,确实有 neovide 的一丝风味。但是细节差很多,光标移动距离太短的时候没有动画效果,比如从 1 行 1 列移动到 2 行 2 列,而 neovide 有。kitty 也没有平滑滚动,在这点上体感就和 neovide 拉开差距了。最后在 kitty 上使用 helix 没有光标动画效果。
    poplar50
        56
    poplar50  
       33 天前
    推荐 wezterm ,我的配置: https://github.com/isvicy/dots/blob/main/.config/wezterm/wezterm.lua

    推荐理由如下:
    * 支持 tab , 支持分屏,且支持定制快捷键,所以在本地不想使用 tmux 的时候,可以使用 wezterm 实现 tmux 的基础功能;
    * 支持 copy 模式,开启之后使用 vim 快捷键,可以快捷复制终端上的内容,这跟 tmux 的 copy mode 也是一样的。
    * 原生支持 windows ;
    * 支持 kitty graphic protocol ,可以在终端显示图片,这对于终端键盘党来说,会省去很多查看图片时要倒来倒去的功夫;

    在上面的链接里,我把快捷键都配置成了类比我 tmux 快捷键的风格,平时使用起来非常丝滑。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2905 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.