iTerm2 与 Tmux 的整合

iTerm2 已经整合了 tmux,这意味着什么?

通常情况下,当你使用 tmux 的时候,会在一个「物理」窗口(Window)中创建多个虚拟的窗口。你可以通过在 tmux 中使用各种命令来操作它的环境,但这样也会随之带来一些问题:

  • 你需要敲下前缀修饰键来进入 tmux 的命令模式(默认情况下是control + b,这和 emacs 中的左移光标是冲突的,而且这也会让与 shell 的交互变得更加困难)。
  • 你需要不止一次的使用 ssh 来连接到远程服务器(remote host)以获得不止一个的 tmux 会话(session)窗口。
  • 你需要学习 tmux 的命令。
  • 你需要开启鼠标报告(mouse reporting)来调整分割窗格(pane)的大小,尽管你并不想启用它。
  • 当你使用 tmux 的时候,一些终端模拟器内置的功能不能很好工作,比如说:你并不能像在普通的终端窗口中那般快捷的使用回滚查看历史,同时,tmux 的查找功能也完全跟 iTerm2 的不能比拟。

多余大多数的用户而言,在终端中使用复用器[1](multiplexer)是十分好用的工作方式,但是他们并不想接受以上的种种缺陷。

iTerm2 与 tmux 的整合(Term2's tmux integration)就解决了这些痛点。

当你执行 tmux -CC 命令时一个新的 tmux 会话就会被创建,一个看上去和普通 iTerm2 窗口没有差别的窗口将会被打开。唯一不同的地方就是,当 iTerms2 退出或者是 ssh 会话丢失时,tmux 会保持运行。你可以重新连接上刚刚 ssh 连接的远程主机,然后执行 tmux -CC attach 命令,iTerm2 窗口会重新打开并恢复到断开时相同的状态。那么,一些应用场景就不难想象了:

对于那些常常使用 ssh 的小伙伴来说,你可以:

  • 回到家中然后恢复公司的工作环境。
  • 不必担心系统升级的电脑重启。

而对于所有小伙伴而言,你可以:

  • 通过连接同一个 tmux 会话和别的小伙伴协作(collaborate)。
  • 保护自己不因 iTerm2 崩溃(iTerm3 会通过会话修复特性来减轻这种状况)而丢失工作环境。

用法

你可以一如往常那般使用 tmux,只需要在末尾加上 -CC 参数就可以了,实际上,也就是执行以下任意一个命令:

tmux -CC
tmux -CC attach

当你执行 tmux -CC 命令的时候,你将会在终端中看到如下的菜单:

** tmux mode started **

Command Menu
----------------------------
esc    Detach cleanly.
  X    Force-quit tmux mode.
  L    Toggle logging.
  C    Run tmux command.
  • 如果你按下 esc 键,tmux 窗口会关闭,tmux 客户端也会终止。
  • 如果你按下 esc 键但是任何事情都没有发生,这说明 tmux 的客户端可能崩溃了或者是除了别的状况。这时按下 X 键来强制 iTerm2 退出 tmux 模式。如果真是的 tmux 客户端崩溃的话,你也许会需要执行 stty sane 命令来恢复你的终端状态。
  • 如果你想提交一个 Bug 的话,可以通过按下 L 键来重现问题,tmux 协议命令会被打印到屏幕上。
  • 如果你想执行菜单中没有的命令,你可以按下 C 键来进入 tmux 命令模式,一个可以输入命令的对话框将会弹出,你可以键入类似 new-window 这样的命令。

通常情况下, 大多数的动作都不需要通过键入命令来实现,以下的一些 iTerm2 的动作就可以直接作用于 tmux:

  • 关闭会话,标签页(tab)或者是窗口:终止 tmux 会话或窗口。
  • 分割窗格:通过 split-window 分割 tmux 窗口。
  • 调整窗格大小:通过 resize-pane 命令调整 tmux 窗格大小。
  • 调整窗口大小:告诉 tmux 客户端的大小改变了,重调所有窗口的大小。窗口不会大于它连接(attach)的最小的客户端的大小,一个灰色的区域将会出现的窗口的右下方表明实际窗口的大小超出了 tmux 窗口允许的最大大小。这一原则的一个好处就是所有的 tmux 窗口/标签页都包含完全相同的行数和列数。
  • 通过菜单栏 Shell->tmux 创建一个新的窗口或者标签页:创建一个新的 tmux 窗口。
  • 通过菜单栏 Shell->tmux->Detach 断开(detach)与 tmux 会话的连接:断开与 tmux 会话的连接,所有 tmux 窗口都会被关闭,你可以通过 tmux -CC attach 命令重新与之连上。

限制

大多数的限制都将会在接下来的版本中得到解决和改进:

  • 在早于2.9版本的 iTerm2 中,你只能同时连接上一个 tmux 会话。在2.9和更新的版本中,你可以同时连接多个 tmux 会话。
  • .tmuxrc 文件未经测试,可能运转不正常。
  • 在早于2.9版本的 iTerm2 中,不能最大化窗格,已经在2.9版本中解决了这一问题。

创建 tmux

你需要使用1.8或更高版本的 tmux,在 Mac 上安装 tmux 最简便的方法是使用 homebrew

brew install tmux

原文链接 《iTerm2 and tmux Ingeration》


  1. What is a terminal multiplexer? It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. And do a lot more.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理。在 macOS 下,使用 iTerm2...
    猫哥学前班阅读 12,672评论 2 30
  • 引子 SSH连接是我们与服务器交互的主要手段,每个程序员每天都会用到,就像喝白开水一样普通。就是这样一个简单而又高...
    bluexiii阅读 12,456评论 0 8
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,156评论 9 467
  • 鹅黄嫩柳,皆是春日的出挑之色。尤其是那一抹鹅黄,没有红的艳丽,紫的端庄,粉的萌态,却独有一股娇俏之魅。 ...
    蔷薇紫阅读 615评论 0 1
  • 活在现在繁花似锦的社会,有钱没钱给谁看。每个时代塑造不同的一批人,年轻时谁都会有颗不甘的心,谁都会思想浮夸过,在老...
    我的未来我主宰阅读 209评论 0 0