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

2019-08-06 11:57:43 +08:00
 fuzhuo233

iTerm 的 tmux 绑定

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

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

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

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

本地使用

远程服务器使用

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

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

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

iTerm 提供与 tmux 相关的设置

9900 次点击
所在节点    macOS
18 条回复
liwufan
2019-08-06 12:05:43 +08:00
第一次听说,谢谢分享
learningman
2019-08-06 12:09:23 +08:00
学到两个 unicode 字符。。。
fantasticfears
2019-08-06 12:22:44 +08:00
用一个 Mac 上的软件替换都能跑的 tmux,不太好用。这样 tmux 配置就麻烦了。
fuzhuo233
2019-08-06 13:04:28 +08:00
@fantasticfears 什么意思…用 iterm 的话,tmux 不需要任何配置
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
2019-08-06 16:23:54 +08:00
我记得这个功能就是把 iTerm 的 keymap 映射到了 tmux 上,然后把 tmux 的 window 和 pane 绑定到了 iTerm 自己的实现吧。对于习惯 iTerm 的人来说可能很方便,不过对于已经习惯了 tmux 的人来说就没必要了。(你们真的不觉得 iTerm 实在是太慢了吗,即使开启了 GPU 加速,试试 Alacritty 吧(
fantasticfears
2019-08-06 17:01:51 +08:00
@fuzhuo233 #6 解释得很清楚,习惯了 tmux 就无所谓 iTerm 的窗口
quaack
2019-08-06 17:28:42 +08:00
prefix 一般是组合键,按起来比 iterm 还是慢一点啊(例如 iterm cmd+1 = tmux C-b, 1>

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

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

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

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

@xdays 开 2 个 iTerm2 窗口,tmux -CC 跑在前台的那个窗口不要用
xdays
2019-08-09 10:33:36 +08:00
@daybyday "preference -> general -> tmux integration -> open tmux window as tabs in existing window" 这样能好一点
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
2021-02-11 22:29:59 +08:00
习惯直接用 tmux 了,何况主力还是 Linux

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/589453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX