V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LonnyWong
V2EX  ›  程序员

2024 将到, iTerm2 是不是还是唯一支持 tmux Integration 的终端?

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

    在 ssh config 中设置 RemoteCommand 之后,iTerm2 用起来几乎感觉不到 tmux 的存在,无需记住 tmux 那些命令和快捷键,新开窗口和分屏都非常方便,网络断开后运行中的程序不会终止,重连又能自动恢复所有。
    完全满足我对终端的核心诉求,而 iTerm2 本身又有很多其他强大的功能,一个字:

    这么多年了,这么帅的功能其他终端居然都没有跟进。或者有,我不知道?
    不过有 iTerm2 也足够了,期待 iTerm2 3.5 尽早正式发布。iTerm2 yyds !

    https://trzsz.github.io/cn/tmuxcc 这里分享一下我个人常用的设置和快捷键等,欢迎大家来讨论和补充,一起来完善。

    61 条回复    2024-07-22 10:44:48 +08:00
    loveshuyuan
        1
    loveshuyuan  
       343 天前   ❤️ 1
    iTerm2 不错,但我选择 Alacritty + Zellij
    Sligcm
        2
    Sligcm  
       343 天前
    装了那么多的终端,iTerm2 依旧还是我唯一长期使用的终端。
    LonnyWong
        3
    LonnyWong  
    OP
       343 天前
    @Sligcm 是啊,iTerm2 是我最喜欢的终端。☝️这里更新和分享一下我的 iTerm2 设置和常用快捷键。
    LonnyWong
        4
    LonnyWong  
    OP
       343 天前
    iTerm2 是个宝库,也在一直迭代更新,平常我也只用到其冰山一角,换个使用姿势就可能极大地提高自己的生产力。

    所以,也希望看到大家是怎么用 iTerm2 的。
    kestrelBright
        5
    kestrelBright  
       343 天前
    其实 up 在推 trzsz ,点个 star 吧
    fioncat
        6
    fioncat  
       343 天前
    可惜 iTerm2 不跨平台,为了跨平台通用性还是选择的 Alacritty
    LonnyWong
        7
    LonnyWong  
    OP
       343 天前
    @kestrelBright No No No ,trzsz 的 star 自然就会在涨了,有不少是来自 Google 搜索的,相信明年就会达到 1K 。虽然还有不少功能还记在小本本里,周末也会继续开发,但我觉得在 V2 推的够多了,这里纯属是 iTerm2 终端的交流。
    LonnyWong
        8
    LonnyWong  
    OP
       343 天前
    @kestrelBright 为了避免误会,我把头像换成 GitHub 的头像了。
    kestrelBright
        9
    kestrelBright  
       343 天前
    hhhha
    LonnyWong
        10
    LonnyWong  
    OP
       343 天前
    @kestrelBright 我会推广,让人知道有 trzsz ( trz / tsz / tssh ) 这么个软件,但我希望 star 是用户自主的。想要 star ,更想要真实的公平的 star ,这对我来说更有意义。
    kestrelBright
        11
    kestrelBright  
       343 天前   ❤️ 1
    @LonnyWong ..我就随便说说,trzsz 确实很赞
    kestrelBright
        12
    kestrelBright  
       342 天前
    刚才又又又用了下 warp ,感觉比起 iTerm2 还是差点东西,唯一好处是不怕忘了命令
    LonnyWong
        13
    LonnyWong  
    OP
       342 天前
    @kestrelBright 历史命令确实还是有点痛,fish 可能会好一些。不过我还是习惯 bash ,配置 ~/.inputrc 开了 vim 模式,输出命令前缀后,ctrl + p 查找历史命令:
    ```
    set editing-mode vi
    "\C-n": history-search-forward
    "\C-p": history-search-backward
    ```
    LonnyWong
        14
    LonnyWong  
    OP
       342 天前
    输出 => 输入
    FightPig
        15
    FightPig  
       342 天前
    @fioncat 可以试下 wezterm ,比 Alacritty 功能多些,也是 rust 写的
    LonnyWong
        16
    LonnyWong  
    OP
       342 天前
    @FightPig wezterm 支持 tmux Integration 不?想找个 Windows 也支持的。不过我已经很少用 Windows 了,主要就是用来测试一下 trzsz 了。
    kestrelBright
        17
    kestrelBright  
       342 天前
    @LonnyWong 历史命令我用 zsh_history 就够了。要么命令熟不需要,不熟的 history 直接就来了。


    如果机器多的话,感觉直接 ssh 命令后加 tmux -CC 还方便点
    Immortal
        18
    Immortal  
       342 天前
    Iterm2 在我刚接触 Mac 的时候用了很久
    后来渐渐的开始使用 Neovim+Tmux 开发后出现一些问题了.一个是渲染性能,另一个是快捷键上的冲突.
    现在主要使用的是 kitty+zinit(延迟加载和管理 zsh 插件)+tmux+neovim 作为日常的终端环境
    LonnyWong
        19
    LonnyWong  
    OP
       342 天前
    @Immortal 我也是在用 nvim ,用的是 iTerm2 tmux Integration ,没觉得有什么性能问题或冲突。
    billzhuang
        20
    billzhuang  
       342 天前
    我已经叛变到 Warp 了。
    Immortal
        21
    Immortal  
       342 天前
    @LonnyWong
    在长代码页面快速翻页下拉的时候就会发现(Ctrl+D/U)的情况下
    FightPig
        22
    FightPig  
       342 天前
    @LonnyWong 我用的也不多,主要是今年做 win 开发时在 win11 下用的,它自带了个功能,你可以参考下 https://www.florianbellmann.com/blog/switch-from-tmux-to-wezterm
    cnbatch
        23
    cnbatch  
       342 天前
    FreeBSD / GhostBSD + Windows 用户路过,从来只用 SCP 传文件,tmux 也只用快捷键。
    OP 提到的所有软件在这两个系统都不能同时使用,每当我需要跨网传大文件时,就会主动改用 Python HTTP server + 我自己造的传输工具。
    如果有 BSD 版本(虽然我觉得 OP 不会这样做),那我也很期待试一试。
    julyclyde
        24
    julyclyde  
       342 天前
    诶,你是用 RemoteCommand 啊?
    我是在 bashrc 里
    zoharSoul
        25
    zoharSoul  
       342 天前
    iTerm2 不错,但我选择 wezterm
    zzhaolei
        26
    zzhaolei  
       342 天前
    warp 不支持 shell 原生的补全功能,这一点很难受
    buchikoma
        27
    buchikoma  
       342 天前
    iTerm2 对于我来说就差一个类似 snippet 的功能,让我点击就能输入预设的命令 ,现在用的 WindTerm 也不错,就是不更新了
    LonnyWong
        28
    LonnyWong  
    OP
       342 天前
    @Immortal 我好像没遇到,不过很少快速翻页,但是有打开超大的源代码,然后搜索疯狂跳转。
    LonnyWong
        29
    LonnyWong  
    OP
       342 天前
    @FightPig wezterm 看着不错。不过我要在服务器上写代码,需要在网络断开后编译不被中断,重连后能恢复所有窗口,这还是得用 tmux 。
    LonnyWong
        30
    LonnyWong  
    OP
       342 天前
    @cnbatch #23 trzsz 和 tssh 是用 go 写,按理说是支持 BSD 的,不过我没有测试过,你有空时可以用 go 编译来试试。
    安装方式你应该能搜到,我就不发了。
    LonnyWong
        31
    LonnyWong  
    OP
       342 天前
    @julyclyde #24 当我偶尔想玩其他终端时,我不需要改配置,只要命令行这样登录:tssh -oRemoteCommand=none xxx
    LonnyWong
        32
    LonnyWong  
    OP
       342 天前
    @buchikoma #27 iTerm2 应该支持你想要的 Snippets 功能:
    https://iterm2.com/documentation-preferences-shortcuts.html
    yelog
        33
    yelog  
       342 天前
    @Sligcm 装了那个多终端, 装一个爱一个, 现在用 wezterm
    julyclyde
        34
    julyclyde  
       342 天前
    @LonnyWong 我用 Remote Command tmux -CC 结果出错
    tcgetattr failed: Inappropriate ioctl for device
    怎么办呢?
    julyclyde
        35
    julyclyde  
       342 天前
    @julyclyde tmux -CC 居然还需要 tty 啊?我还以为-CC 就不需要了
    LonnyWong
        36
    LonnyWong  
    OP
       342 天前
    @julyclyde #35 要 tty 的,一般的登录 ssh 是会开启 tty 的,有 RemoteCommand 之后 ssh 又会默认不开启 tty ,所以需要显式指定开启 tty ,我在文档里专门写了:
    ```
    RequestTTY Yes
    ```
    https://trzsz.github.io/cn/tmuxcc
    bjfane
        37
    bjfane  
       342 天前
    iterm2 为主,wrap 只用 ai 这一个功能。
    williamx
        38
    williamx  
       342 天前 via Android
    因为新的 term 不需要 tmux ,他们准备颠覆它。😂
    LonnyWong
        39
    LonnyWong  
    OP
       342 天前
    @williamx #38 应该是他们都在本地玩的,在服务器上长时间操作的需求很少。
    ByteCat
        40
    ByteCat  
       342 天前
    我要求不高,直接用 Termius 了,SSH+SFTP+本地 Terminal 一体了
    sjtulyj
        41
    sjtulyj  
       342 天前
    @LonnyWong 我猜 `wezterm connect` 是支持的
    LonnyWong
        42
    LonnyWong  
    OP
       342 天前
    @ByteCat #40 生产力工具必须用的顺心呀,作为 nvim 用户,我每天用的最多的就是 iTerm2 了。
    zdkk
        43
    zdkk  
       342 天前
    windterm
    LonnyWong
        44
    LonnyWong  
    OP
       342 天前
    @sjtulyj #41 看起来好像可以,要在服务器上安装个后台进程: https://wezfurlong.org/wezterm/multiplexing.html
    tywtyw2002
        45
    tywtyw2002  
       342 天前 via iPhone   ❤️ 1
    用 wezterm 呀

    直接服务器上起个 wez-server 直接连了。

    tmux 真的太老了,除了服务器,本地基本不开了。
    再等几年 Zellij 完善完善,完全可以替代 tmux 。
    LonnyWong
        46
    LonnyWong  
    OP
       342 天前
    @tywtyw2002 #45 wezterm 和 zellij 看着可以,已 star ,有空去试试。
    sjtulyj
        47
    sjtulyj  
       342 天前
    @LonnyWong 大佬如何看待 waveterm
    LonnyWong
        48
    LonnyWong  
    OP
       342 天前
    @sjtulyj #47 看起来 wave 也可以,看介绍支持 session 持久化,已 star ,有空再研究研究。
    julyclyde
        49
    julyclyde  
       342 天前
    @LonnyWong RemoteCommand 之后我发现 rsync over ssh 坏了
    我只好改回去了
    LonnyWong
        50
    LonnyWong  
    OP
       342 天前
    @julyclyde #49 可以配置两个 Host ,rsync 用另一个。
    zbowen66
        51
    zbowen66  
       341 天前
    借楼问一下这是什么错误,搜过两次都没搜到,自带的 Terminal 和 Warp 都没有,恢复默认主题也不会消失。

    zbowen66
        52
    zbowen66  
       341 天前
    @zbowen66 #51

    iconv: iconv_open(, -t): Invalid argument
    Error converting string from to UTF-8
    LonnyWong
        53
    LonnyWong  
    OP
       341 天前
    @zbowen66 感觉是 iconv 的版本太旧,或者哪里设置了非 UTF-8 的字符,可能是 UTF8MB4 的,可以试着升级 iconv 看看。
    zbowen66
        54
    zbowen66  
       341 天前   ❤️ 1
    @LonnyWong #53 试着升级了 iconv ,报错信息变成另一个了😂。

    设置里找了一下,发现有个环境变量改成 LANG=zh_CN.UTF-8 就没有报错了,但是有个小尾巴(如图),之前的报错应该就是这个小尾巴导致的。我检查了 ~/.zshrc 没有可疑的东西,我注释掉 `source $ZSH/oh-my-zsh.sh` 就完全没有这一行输出,应该是 ohmyzsh 输出的

    zbowen66
        55
    zbowen66  
       341 天前
    @zbowen66 #54 重装了 ohmyzsh 还是一样...
    LonnyWong
        56
    LonnyWong  
    OP
       341 天前
    @zbowen66 #54 这个小尾巴是 ohmyzsh 的功能吧?感觉应该有的设置的。
    zbowen66
        57
    zbowen66  
       341 天前
    @LonnyWong #56 好像是用来指示结果是否失败的


    VS Code 里面显示成这样:
    waitnoww
        58
    waitnoww  
       314 天前
    @zbowen66 我遇到这个问题 是通过调整这个设置修复的

    ![nlvayN]( https://cdn.jsdelivr.net/gh/naodeng/blogimg@master/uPic/nlvayN.png)
    调整为 UK 这个配置后,重启 iterm2 就好了
    fo0o7hU2tr6v6TCe
        59
    fo0o7hU2tr6v6TCe  
       230 天前
    @zbowen66 你这是 iterm2? 为啥标签栏这么大 咋设置的
    zbowen66
        60
    zbowen66  
       230 天前
    @hzjseasea #59 https://blog.bowen.cool/zh/posts/common-shortcuts-for-macos#item2-%E8%AE%BE%E7%BD%AE
    qbmiller
        61
    qbmiller  
       128 天前
    用了 tabby. 不过就是 sftp 时候才需要它。 因为跳板机
    其他都用 iterm2 ,传文件用个 scp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:06 · PVG 15:06 · LAX 23:06 · JFK 02:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.