好像很少有人使用(发现)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 server
ssh 层数不限
再使用同样的方法连接 tmux -CC
或者重连 tmux -CC attach
tmux 的 session 对应窗口,tab 对应标签,panel 对应分割面板
关联以后新建窗口、分割面板、回滚日志、复制粘贴完全和本地终端一样使用了,使用 iterm 原生所有快捷键或者纯鼠标操作,不需要记忆 tmux 任何快捷键
1
liwufan 2019-08-06 12:05:43 +08:00 via iPhone
第一次听说,谢谢分享
|
2
learningman 2019-08-06 12:09:23 +08:00
学到两个 unicode 字符。。。
|
3
fantasticfears 2019-08-06 12:22:44 +08:00 via iPhone
用一个 Mac 上的软件替换都能跑的 tmux,不太好用。这样 tmux 配置就麻烦了。
|
4
fuzhuo233 OP @fantasticfears 什么意思…用 iterm 的话,tmux 不需要任何配置
|
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/ |
6
unidentifiedme 2019-08-06 16:23:54 +08:00 1
我记得这个功能就是把 iTerm 的 keymap 映射到了 tmux 上,然后把 tmux 的 window 和 pane 绑定到了 iTerm 自己的实现吧。对于习惯 iTerm 的人来说可能很方便,不过对于已经习惯了 tmux 的人来说就没必要了。(你们真的不觉得 iTerm 实在是太慢了吗,即使开启了 GPU 加速,试试 Alacritty 吧(
|
7
fantasticfears 2019-08-06 17:01:51 +08:00 via iPhone
@fuzhuo233 #6 解释得很清楚,习惯了 tmux 就无所谓 iTerm 的窗口
|
8
quaack 2019-08-06 17:28:42 +08:00
prefix 一般是组合键,按起来比 iterm 还是慢一点啊(例如 iterm cmd+1 = tmux C-b, 1>
当然你可以各种重新映射键位 |
9
xdays 2019-08-06 18:09:57 +08:00
有没有办法让 tmux -CC 不占用前台?我找了一圈没找到
|
10
bookit 2019-08-06 20:51:36 +08:00
@xdays 在 iterm2 的 profiles-General 里面设置 send text:
tmux new-session \; split-window -h \; 这样启动的时候直接开了两个 tmux 的 panel |
11
yangg 2019-08-06 20:59:48 +08:00 1
以前试过,感觉没啥用,今天又试下,还是感觉没啥用,原来是为了不用 tmux 的快捷键
|
12
ahjsrhj 2019-08-07 17:49:59 +08:00
试了一下,感觉没啥卵用,还有点乱
|
13
Kobayashi 2019-08-07 19:46:15 +08:00 via Android
iTerm2 的 tmux 集成是有点性能问题的。集成模式下,在 tmux 中打断输出有延迟。非集成模式下,输出性能下降。
https://gitlab.com/gnachman/iterm2/issues/7899 |
14
Judoon 2019-08-08 10:43:06 +08:00
这东西我也就在 tmux 多层嵌套的时候使用,其他说好不好用还是看个人快捷键之类的使用习惯。
另外,centos6 上官方源版本太老不支持这个特性,可以自己编译。不过祖传 centos6 可能也慢慢变少了 |
16
xdays 2019-08-09 10:33:36 +08:00
@daybyday "preference -> general -> tmux integration -> open tmux window as tabs in existing window" 这样能好一点
|
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,还没解决这个问题。
|
18
the0demiurge 2021-02-11 22:29:59 +08:00 via iPhone
习惯直接用 tmux 了,何况主力还是 Linux
|