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

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

  •  
  •   LonnyWong · 2023-12-20 12:48:27 +08:00 · 5170 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 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  
       2023-12-20 13:44:20 +08:00   ❤️ 1
    iTerm2 不错,但我选择 Alacritty + Zellij
    Sligcm
        2
    Sligcm  
       2023-12-20 13:53:54 +08:00
    装了那么多的终端,iTerm2 依旧还是我唯一长期使用的终端。
    LonnyWong
        3
    LonnyWong  
    OP
       2023-12-20 14:02:44 +08:00
    @Sligcm 是啊,iTerm2 是我最喜欢的终端。☝️这里更新和分享一下我的 iTerm2 设置和常用快捷键。
    LonnyWong
        4
    LonnyWong  
    OP
       2023-12-20 14:10:30 +08:00
    iTerm2 是个宝库,也在一直迭代更新,平常我也只用到其冰山一角,换个使用姿势就可能极大地提高自己的生产力。

    所以,也希望看到大家是怎么用 iTerm2 的。
    kestrelBright
        5
    kestrelBright  
       2023-12-20 14:13:50 +08:00
    其实 up 在推 trzsz ,点个 star 吧
    fioncat
        6
    fioncat  
       2023-12-20 14:18:16 +08:00
    可惜 iTerm2 不跨平台,为了跨平台通用性还是选择的 Alacritty
    LonnyWong
        7
    LonnyWong  
    OP
       2023-12-20 14:22:59 +08:00
    @kestrelBright No No No ,trzsz 的 star 自然就会在涨了,有不少是来自 Google 搜索的,相信明年就会达到 1K 。虽然还有不少功能还记在小本本里,周末也会继续开发,但我觉得在 V2 推的够多了,这里纯属是 iTerm2 终端的交流。
    LonnyWong
        8
    LonnyWong  
    OP
       2023-12-20 14:28:34 +08:00
    @kestrelBright 为了避免误会,我把头像换成 GitHub 的头像了。
    kestrelBright
        9
    kestrelBright  
       2023-12-20 14:47:45 +08:00
    hhhha
    LonnyWong
        10
    LonnyWong  
    OP
       2023-12-20 14:50:53 +08:00
    @kestrelBright 我会推广,让人知道有 trzsz ( trz / tsz / tssh ) 这么个软件,但我希望 star 是用户自主的。想要 star ,更想要真实的公平的 star ,这对我来说更有意义。
    kestrelBright
        11
    kestrelBright  
       2023-12-20 15:06:38 +08:00   ❤️ 1
    @LonnyWong ..我就随便说说,trzsz 确实很赞
    kestrelBright
        12
    kestrelBright  
       2023-12-20 15:09:07 +08:00
    刚才又又又用了下 warp ,感觉比起 iTerm2 还是差点东西,唯一好处是不怕忘了命令
    LonnyWong
        13
    LonnyWong  
    OP
       2023-12-20 15:15:55 +08:00
    @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
       2023-12-20 15:17:10 +08:00
    输出 => 输入
    FightPig
        15
    FightPig  
       2023-12-20 15:38:53 +08:00
    @fioncat 可以试下 wezterm ,比 Alacritty 功能多些,也是 rust 写的
    LonnyWong
        16
    LonnyWong  
    OP
       2023-12-20 15:42:59 +08:00
    @FightPig wezterm 支持 tmux Integration 不?想找个 Windows 也支持的。不过我已经很少用 Windows 了,主要就是用来测试一下 trzsz 了。
    kestrelBright
        17
    kestrelBright  
       2023-12-20 15:47:03 +08:00
    @LonnyWong 历史命令我用 zsh_history 就够了。要么命令熟不需要,不熟的 history 直接就来了。


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

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

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

    zbowen66
        52
    zbowen66  
       2023-12-21 17:55:04 +08:00
    @zbowen66 #51

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

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

    zbowen66
        55
    zbowen66  
       2023-12-21 21:33:52 +08:00
    @zbowen66 #54 重装了 ohmyzsh 还是一样...
    LonnyWong
        56
    LonnyWong  
    OP
       2023-12-21 21:36:51 +08:00
    @zbowen66 #54 这个小尾巴是 ohmyzsh 的功能吧?感觉应该有的设置的。
    zbowen66
        57
    zbowen66  
       2023-12-21 22:16:39 +08:00
    @LonnyWong #56 好像是用来指示结果是否失败的


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

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