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

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

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

    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 的主题
    16 回复  |  直到 2019-08-09 10:33:36 +08:00
        1
    liwufan   123 天前 via iPhone
    第一次听说,谢谢分享
        2
    learningman   123 天前
    学到两个 unicode 字符。。。
        3
    fantasticfears   123 天前 via iPhone
    用一个 Mac 上的软件替换都能跑的 tmux,不太好用。这样 tmux 配置就麻烦了。
        4
    fuzhuo233   123 天前
    @fantasticfears 什么意思…用 iterm 的话,tmux 不需要任何配置
        5
    bookit   123 天前
    这里有一篇 item2+tmux 的按键绑定文章,很有参考价值

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

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

    当然你可以各种重新映射键位
        9
    xdays   123 天前
    有没有办法让 tmux -CC 不占用前台?我找了一圈没找到
        10
    bookit   123 天前
    @xdays 在 iterm2 的 profiles-General 里面设置 send text:

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

    这样启动的时候直接开了两个 tmux 的 panel
        11
    yangg   123 天前   ♥ 1
    以前试过,感觉没啥用,今天又试下,还是感觉没啥用,原来是为了不用 tmux 的快捷键
        12
    ahjsrhj   122 天前
    试了一下,感觉没啥卵用,还有点乱
        13
    Kobayashi   122 天前 via Android
    iTerm2 的 tmux 集成是有点性能问题的。集成模式下,在 tmux 中打断输出有延迟。非集成模式下,输出性能下降。

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

    @xdays 开 2 个 iTerm2 窗口,tmux -CC 跑在前台的那个窗口不要用
        16
    xdays   120 天前
    @daybyday "preference -> general -> tmux integration -> open tmux window as tabs in existing window" 这样能好一点
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1250 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 33ms · UTC 17:42 · PVG 01:42 · LAX 09:42 · JFK 12:42
    ♥ Do have faith in what you're doing.