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

科普并推荐一下 iTerm 的 tmux 绑定功能

  •  2
     
  •   fuzhuo233 · 2019-08-06 11:57:43 +08:00 · 9844 次点击
    这是一个创建于 1697 天前的主题,其中的信息可能已经有所发展或是发生改变。

    iTerm 的 tmux 绑定

    好像很少有人使用(发现)iTerm的 tmux 绑定这个强大的功能

    iTerm2 相对于内置的 Terminal 更好用的是⌘D⌘⇧D的分屏功能,但除开各种其它花哨的功能外最强大的功能当属 tmux 绑定了

    tmux 和 screen 一样但它最方便的地方在于断开重连,对于 ssh 网络连接不稳定的服务器维护尤其重要,但这类终端管理器也有不好用的地方,比如蹩脚的鼠标支持,比如很难记忆的快捷键,比如反人类的复制粘贴、回滚查看日志等操作,iTerm2 完美解决了这些问题,让你能像使用本地终端一样使用 tmux,同时无缝重连

    使用方法:关键是-CC这个参数,如果不支持-CC 这个参数,更新下 tmux 吧(至少两年前的版本就已经支持了)

    本地使用

    • 新建窗口: tmux -CC

    • 断开重连(attach): tmux -CC attach

    • 断开连接(dettach): 在连接的窗口按 esc,或者直接关掉连接的 tab 吧

    • 关掉 session(destroy): 关闭当前 session 的所有 tab 即可

    远程服务器使用

    • 先 ssh 登录ssh serverssh 层数不限

    • 再使用同样的方法连接 tmux -CC 或者重连 tmux -CC attach

    映射后就跟本地终端操作无二了

    tmux 的 session 对应窗口,tab 对应标签,panel 对应分割面板

    关联以后新建窗口、分割面板、回滚日志、复制粘贴完全和本地终端一样使用了,使用 iterm 原生所有快捷键或者纯鼠标操作,不需要记忆 tmux 任何快捷键

    iTerm 提供与 tmux 相关的设置

    • 在偏好设置 General 里就有个 tmux 的设置页,一般习惯选择 Open tmux windows as: Native tabs in a new window,这样容易保证连接的独立性,每个 tmux 会话一个窗口
    • tmux 可以使用单独名叫 tmux 的主题
    18 条回复    2021-02-11 22:29:59 +08:00
    liwufan
        1
    liwufan  
       2019-08-06 12:05:43 +08:00 via iPhone
    第一次听说,谢谢分享
    learningman
        2
    learningman  
       2019-08-06 12:09:23 +08:00
    学到两个 unicode 字符。。。
    fantasticfears
        3
    fantasticfears  
       2019-08-06 12:22:44 +08:00 via iPhone
    用一个 Mac 上的软件替换都能跑的 tmux,不太好用。这样 tmux 配置就麻烦了。
    fuzhuo233
        4
    fuzhuo233  
    OP
       2019-08-06 13:04:28 +08:00
    @fantasticfears 什么意思…用 iterm 的话,tmux 不需要任何配置
    bookit
        5
    bookit  
       2019-08-06 16:03:37 +08:00
    这里有一篇 item2+tmux 的按键绑定文章,很有参考价值

    这样就免去记忆按一堆 tmux 的 prefix 的麻烦了

    http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
    unidentifiedme
        6
    unidentifiedme  
       2019-08-06 16:23:54 +08:00   ❤️ 1
    我记得这个功能就是把 iTerm 的 keymap 映射到了 tmux 上,然后把 tmux 的 window 和 pane 绑定到了 iTerm 自己的实现吧。对于习惯 iTerm 的人来说可能很方便,不过对于已经习惯了 tmux 的人来说就没必要了。(你们真的不觉得 iTerm 实在是太慢了吗,即使开启了 GPU 加速,试试 Alacritty 吧(
    fantasticfears
        7
    fantasticfears  
       2019-08-06 17:01:51 +08:00 via iPhone
    @fuzhuo233 #6 解释得很清楚,习惯了 tmux 就无所谓 iTerm 的窗口
    quaack
        8
    quaack  
       2019-08-06 17:28:42 +08:00
    prefix 一般是组合键,按起来比 iterm 还是慢一点啊(例如 iterm cmd+1 = tmux C-b, 1>

    当然你可以各种重新映射键位
    xdays
        9
    xdays  
       2019-08-06 18:09:57 +08:00
    有没有办法让 tmux -CC 不占用前台?我找了一圈没找到
    bookit
        10
    bookit  
       2019-08-06 20:51:36 +08:00
    @xdays 在 iterm2 的 profiles-General 里面设置 send text:

    tmux new-session \; split-window -h \;

    这样启动的时候直接开了两个 tmux 的 panel
    yangg
        11
    yangg  
       2019-08-06 20:59:48 +08:00   ❤️ 1
    以前试过,感觉没啥用,今天又试下,还是感觉没啥用,原来是为了不用 tmux 的快捷键
    ahjsrhj
        12
    ahjsrhj  
       2019-08-07 17:49:59 +08:00
    试了一下,感觉没啥卵用,还有点乱
    Kobayashi
        13
    Kobayashi  
       2019-08-07 19:46:15 +08:00 via Android
    iTerm2 的 tmux 集成是有点性能问题的。集成模式下,在 tmux 中打断输出有延迟。非集成模式下,输出性能下降。

    https://gitlab.com/gnachman/iterm2/issues/7899
    Judoon
        14
    Judoon  
       2019-08-08 10:43:06 +08:00
    这东西我也就在 tmux 多层嵌套的时候使用,其他说好不好用还是看个人快捷键之类的使用习惯。
    另外,centos6 上官方源版本太老不支持这个特性,可以自己编译。不过祖传 centos6 可能也慢慢变少了
    daybyday
        15
    daybyday  
       2019-08-08 22:05:25 +08:00
    握手,我也是这样用了好几年

    @xdays 开 2 个 iTerm2 窗口,tmux -CC 跑在前台的那个窗口不要用
    xdays
        16
    xdays  
       2019-08-09 10:33:36 +08:00
    @daybyday "preference -> general -> tmux integration -> open tmux window as tabs in existing window" 这样能好一点
    happyhacker
        17
    happyhacker  
       2020-11-19 15:19:46 +08:00
    @unidentifiedme 说的很对,我一直没太搞明白他这个集成是要干啥,已经习惯了 tmux 的快捷键,搞成他这个就没有了。我现在用 tmux 的一个痛点是和 iTerm 带的 trigger 功能有冲突。比如你设置了一个屏幕上出现了某段字符后触发什么行为,但因为 tmux 有一个很快的自动刷新,每次刷新 iTerm 都会认为这段字符又重新出现一次,所以相应的行为就会再触发一次,这就很尴尬了。。。目前我试了最新的 tmux next-3.3 ( master 分支自己编译的)和最新的 iTerm2 3.4.1,还没解决这个问题。
    the0demiurge
        18
    the0demiurge  
       2021-02-11 22:29:59 +08:00 via iPhone
    习惯直接用 tmux 了,何况主力还是 Linux
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2807 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:01 · PVG 23:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.