科普并推荐一下 iTerm 的 tmux 绑定功能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fuzhuo233
V2EX    macOS

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

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

    iTerm 的 tmux 绑定

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

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

    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     Solana     1026 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:06 PVG 02:06 LAX 11:06 JFK 14:06
    o have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86