还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决

每天早上七点三十,准时推送干货

前言

阿粉在之前文章中教过大家如何结合 zshiterm2 发挥最佳效果。

什么还没有看过?赶紧看下补一下前提知识:收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

上篇文中,阿粉提到每次上线发布的时候,都会打开很多 iTerm 窗口,通过 tab 页拖拽方式让所有窗口可以同时显示。

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第1张图片

最近阿粉发现一个强大的工具 『tmux』,可以仅仅在一个 iTerm 窗口实现上面的多屏的效果。

为什需要使用 tmux?阿粉在网上找到一张有趣的图。

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第2张图片 来源:其他网站

tmux

tmux 是一个终端复用器(terminal multiplexer),可以让我们在一个 iTerm 窗口运行多个终端程序。

tmux 使用效果如下:

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第3张图片

这里我们需要了解一下 tmux 中三个概念:

  • 会话(Session

  • 窗口(Window

  • 窗格(Pane

一个会话内我们可以开启多个窗口,而一个窗口内又可以拆分为多个窗格。

快键前置键

tmux 中有很多快键键,但是这些快捷键都需要通过一个前置快键键唤起。默认前置键Ctrl+b,也就是说每次需要先按下 Ctrl+b,然后再按下其他键,快捷键才会生效。

安装

tmux 安装方式比较简单,运行如下命令即可:

# Mac
brew install tmux
# Ubuntu 或 Debian
sudo apt-get install tmux
# CentOS 或 Fedora
sudo yum install tmux

会话管理

新建 session

使用 tmux 之前我们首先需要新建一个 Session,命令如下:

# 新建 session 名称默认为 0
tmux 
# 新建 session,使用 -s 自定义 session 名字
tmux new -s 
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第4张图片

保存会话

进入会话之后,进行相关操作,比如使用 SSH 连上远端服务器。这时如果想退出去的时候,可以保存当前会话信息。下次可以直接重新进入这个会话,不用重新再次使用 SSH 连接了。

# 保存当前会话
tmux detach
# 推荐使用快捷键
Ctrl+b d
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第5张图片

接入会话

tmux attach  可以接入上次保存的会话。

# 默认进入上次保存的会话
tmux attach
# 可以使用 -t 指定会话名字。
tmux attach -t 
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第6张图片

查看会话

如果之前同时保存了多个会话,我们可以使用 tmux ls 查看当前所有会话。

# 查看会话
tmux ls
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第7张图片

杀死会话

使用 tmux kill-session 我们可以杀死某个会话。

# 默认杀死最近使用会话
tmux kill-session
# 使用 -t 指定会话名称
tmux kill-session -t 

窗口管理

新建窗口

# 新建一个指定名称的窗口
tmux new-window -n 

切换窗口

# 切换到指定名称的窗口
tmux select-window -t 

这里推荐使用快捷键 Ctrl+b w:从列表中选择窗口。

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第8张图片

窗格操作

窗格操作这是阿粉认为最强大的功能,我们使用命令可以将一个窗口划分为多个窗格,不过阿粉还是建议使用快键键操作。

# 划分上下两个窗格 命令:tmux split-window
Ctrl+b %
# 划分上下两个窗格 命令:tmux split-window -h
Ctrl+b "
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第9张图片

切换 pane

## 切换当前所在窗格
Ctrl+b 方向键
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第10张图片

窗格大小调整

Ctrl+b alt+:方向键 调整窗格大小。
还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第11张图片

其他窗格常用快捷键

  • Ctrl+b x:关闭当前窗格。

  • Ctrl+b !:将当前窗格拆分为一个独立窗口。

  • Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。

  • Ctrl+b q:显示窗格编号。

小问题

默认配置下,tmux 相关操作只能使用键盘,这对于刚开始使用的小伙伴很不友好。另外如果在分屏的情况下,使用鼠标进行复制粘贴,就会发现复制文本串行的现象。

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第12张图片

原本只想复制右上窗口的内容,但是复制的时候却串行了,将左边窗口的内容也复制了。

自定义 tmux 配置

我们可以修改 tmux 相关配置开启鼠标,复制/粘贴功能。

不过这里不推荐大家一个个去官网找配置参数,Github 上有个大神开开源其 tmux 配置,我们可以将 tmux 配置如下:

Github 地址: https://github.com/gpakosz/.tmux

安装方法:

$ cd
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

如果需要修改配置,建议在  ~/.tmux.conf.local 中配置。

上面操作完成之后,重新打开 tmux ,就可以看到界面变化了。若未生效,可以运行如下配置:

tmux source ~/.tmux.conf

这个配置下, tmux 默认快键前置键可以使用 Ctrl+b,也可以使用  Ctrl+a

默认情况下,未开启鼠标模式,需要使用如下如下快捷键打开;

Ctrl+b m

开启之后,就可以愉快使用鼠标。

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第13张图片

其他注意点

tmux 会话窗口中,我们是无法访问 macos 系统剪贴板,我们需要安装 reattach-to-user-namespace

安装方式如下:

$ brew install reattach-to-user-namespace

安装成功之后,复制过程中可能碰到以下情况:

我们需要在 iTerm 打开如下配置:

还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决_第14张图片

总结

这篇文章,阿粉介绍 tmux 的使用方法,合理使用 tmux 可以有效提高日常的生产力。

参考文档

  1. https://www.ruanyifeng.com/blog/2019/10/tmux.html

  2. https://harttle.land/2015/11/06/tmux-startup.html

最后(知识星球现在续费只要 6 折)

现在阿粉诚邀你加入我们的知识星球,这里有 1700+ 优秀的人与你一起进步,如果你是小白那你是稳赚了,很多业内经验和干活分享给你;如果你是大佬,那可以进来我们一起交流分享你的经验,说不定日后我们还可以有合作,给你的人生多一个可能。

最后为了感谢球友们的在星球中付出,星球有了你们,才会这么精彩。现在特为老球友开启限时优惠,老球友续费只要 6 折!

长按识别下方二维码,和1700位球友一起进步

雷军说:试错的成本很低,错过的成本很高!

往期精彩回顾

利用SpringBoot+RabbitMQ,实现一个邮件推送服务

有个程序员老公,是种什么样的感觉

我去,还在这样读写 excel 这也太低效了吧!

你可能感兴趣的:(还在为 iTerm 多窗口操作烦恼?tmux 这款神器轻松帮你解决)