在mac中安装tmux

在mac 中安装Tmux:

在终端输入以下命令:javascript

brew  install tmux

Tmux 的快捷键前缀(Prefix)

为了使自身的快捷键和其余软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,须要先按下快捷键前缀,而后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。html

可是,因为键盘上 Ctrl 键和 b 键距离太远了,操做起来特别不方便,因此常常须要修改快捷键前缀:只需将如下配置加入到 Tmux 的配置文件 ~/.tmux.conf 中(没有此文件就建立一个):java

#我的喜欢吧快捷键前缀设置为 Ctrl + a unbind C-b set -g prefix C-a

Tmux 中的特殊功能

会话(session)

一个 Tmux 会话中能够包含多个窗口。在会话外建立一个新的会话:nginx

tmux new -s <name-of-my-session>

进入会话后建立新的会话:只须要按下 Ctrl-b : ,而后输入以下的命令:git

Ctrl-b
 :new -s <name-of-my-new-session>

在 Tmux 的会话间切换github

在会话内获取会话列表,能够按下Ctrl-b s。下图所示的就是会话的列表:sql

Ctrl-b s


列表中的每一个会话都有一个 ID,该 ID 是从 0 开始的。按下对应的 ID 就能够进入会话。
shell

在会话外获取会话列表:swift

tmux ls

在会话外进入会话:vim

tmux attach -t <name-of-my-session> 或 tmux a -t <name-of-my-session> #进入列表中第一个会话 tmux attach 或 tmux a

临时退出但不删除会话:

Ctrl + b d

在会话内退出并删除session

Ctrl+b 
:kill-session #删除全部session Ctrl+b :kill-server

在会话外删除指定session

tmux kill-session -t <name-of-my-session>

窗口(Window)

一个 Tmux 会话中能够包含多个窗口。一个窗口中有能够防止多个窗格。
在 Tmux 的会话中,现有的窗口将会列在屏幕下方。下图所示的就是在默认状况下 Tmux 列出现有窗口的方式。这里一共有三个窗口,分别是“server”、“editor”和“shell”。

建立窗口:

Ctrl-c

查看窗口列表

Ctrl-b w

切换到指定窗口,只须要先按下Ctrl-b,而后再按下想切换的窗口所对应的数字。

Ctrl-0

切换到下一个窗口

Ctrl+b n

切换到上一个窗口

Ctrl+b p

在相邻的两个窗口里切换

Ctrl+b l

重命名窗口

Ctrl+b ,

在多个窗口里搜索关键字

Ctrl+b f

删除窗口

Ctrl+b &

窗格(Panes)

一个tmux窗口能够分割成若干个格窗。而且格窗能够在不一样的窗口中移动、合并、拆分。

建立pane横切split pane horizontal

Ctrl+"

竖切split pane vertical

Ctrl+%

按顺序在pane之间移动

Ctrl+b o

上下左右选择pane

Ctrl+b 方向键上下左右

调整pane的大小(我发现按住Ctrl+b 再按 [上|下|左|右] 键也能够实现相同的效果)

Ctrl+b 
:resize-pane -U #向上 Ctrl+b :resize-pane -D #向下 Ctrl+b :resize-pane -L #向左 Ctrl+b :resize-pane -R #向右

在上下左右的调整里,最后的参数能够加数字 用以控制移动的大小,例如:

Ctrl+b 
:resize-pane -D 5 #向下移动5行

在同一个window里上下左右移动pane

Ctrl+b { (往左边,往上面) Ctrl+b } (往右边,往下面)

删除pane

Ctrl+b x

更换pane排版(上下左右分隔各类换)

Ctrl+b “空格”

移动pane至新的window

Ctrl+b !

移动pane合并至某个window

Ctrl+b :join-pane -t $window_name

按顺序移动pane位置

Ctrl+b Ctrl+o

显示pane编号

Ctrl+b q

显示时间

 
Ctrl+b t


十分钟学会 tmux

 

tmux 是一款终端复用命令行工具,通常用于 Terminal 的窗口管理。在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求。

 

如上图所示,iTerm2 能新建多个标签页(快捷键 ⌘T),也能在同一个窗口中分割出多个窗格(快捷键 ⌘D 或 ⌘⇧D)。

tmux 相比 iTerm2 的优点在于:

  • iTerm2 的窗格切换快捷键(⌘⌥→)容易与其余软件全局快捷键冲突(例如 Spectacle 的窗口分割快捷键),tmux 因为存在前缀快捷键,因此不存在快捷键冲突问题;

  • tmux 能够在终端软件重启后经过命令行恢复上次的 session ,而终端软件则不行;

  • tmux 简洁优雅、订制性强,学会以后也能在 Linux 上使用,有助于逼格提高。

接下来咱们花十分钟来掌握下 tmux 的基础用法:

 

安装运行

macOS 上使用 Homebrew 安装便可:

brew install tmux

安装完成后,运行 tmux 新建一个 tmux 的会话(session),此时窗口惟一的变化是在底部会出现一个 tmux 的状态栏。咱们先按下 tmux 默认的前缀快捷键 ⌃b 将其激活为快捷键接收模式,再按下 % ,便可将当前窗口切分为左右两个窗格。

 

 

快捷键

通常状况下 tmux 中全部的快捷键都须要和前缀快捷键 ⌃b 来组合使用(注:⌃ 为 Mac 的 control 键),如下是经常使用的窗格(pane)快捷键列表,你们能够依次尝试下:

窗格操做

  • % 左右平分出两个窗格

  • " 上下平分出两个窗格

  • x 关闭当前窗格

  • { 当前窗格前移

  • } 当前窗格后移

  • ; 选择上次使用的窗格

  • o 选择下一个窗格,也可使用上下左右方向键来选择

  • space 切换窗格布局,tmux 内置了五种窗格布局,也能够经过 ⌥1 至 ⌥5来切换

  • z 最大化当前窗格,再次执行可恢复原来大小

  • q 显示全部窗格的序号,在序号出现期间按下对应的数字,便可跳转至对应的窗格

窗口操做

tmux 除了窗格之外,还有窗口(window) 的概念。依次使用如下快捷键来熟悉 tmux 的窗口操做:

  • c 新建窗口,此时当前窗口会切换至新窗口,不影响原有窗口的状态

  • p 切换至上一窗口

  • n 切换至下一窗口

  • w 窗口列表选择,注意 macOS 下使用 ⌃p 和 ⌃n 进行上下选择

  • & 关闭当前窗口

  • , 重命名窗口,可使用中文,重命名后能在 tmux 状态栏更快速的识别窗口 id

  • 0 切换至 0 号窗口,使用其余数字 id 切换至对应窗口

  • f 根据窗口名搜索选择窗口,可模糊匹配

 

 

会话操做

若是运行了屡次 tmux 命令则会开启多个 tmux 会话(session)。在 tmux 会话中,使用前缀快捷键 ⌃b 配合如下快捷键可操做会话:

  • $ 重命名当前会话

  • s 选择会话列表

  • d detach 当前会话,运行后将会退出 tmux 进程,返回至 shell 主进程

在 shell 主进程下运行如下命令能够操做 tmux 会话:

 
tmux new -s foo # 新建名称为 foo 的会话
tmux ls # 列出全部 tmux 会话
tmux a # 恢复至上一次的会话
tmux a -t foo # 恢复名称为 foo 的会话,会话默认名称为数字
tmux kill-session -t foo # 删除名称为 foo 的会话
tmux kill-server # 删除全部的会话

 

 

除以上提到的快捷键之外,tmux 还有许多其余的快捷键和命令,使用前缀快捷键 ⌃b 加 ? 能够查看全部的快捷键列表,该列表视图为 tmux copy 模式,该模式下可以使用如下快捷键(无需加 ⌃b 前缀):

  • ⌃v 下一页

  • Meta v 上一页 (tmux 快捷键为 Emacs 风格,这里的 Meta 键可用 Esc 模拟)

  • ⌃s 向前搜索

  • q 退出 copy 模式

常见配置与问题

一、鼠标滚屏

tmux 默认配置中最糟糕的体验就是滚屏查看和文本复制(你们能够先试试看)。你须要先使用 ⌃b [ 快捷键进入 copy 模式,而后使用翻页、字符定位来选择须要的字符,效率远没有鼠标选择来的快。

所以 tmux 提供了一些个性化配置项来优化这些配置,首先在 shell 中运行 touch ~/.tmux.conf 新建用户配置文件。在文件中增长如下内容:

 
# 开启鼠标模式
set -g mode-mouse on
​
# 容许鼠标选择窗格
set -g mouse-select-pane on
​
# 若是喜欢给窗口自定义命名,那么须要关闭窗口的自动命名
set-option -g allow-rename off
​
# 若是对 vim 比较熟悉,能够将 copy mode 的快捷键换成 vi 模式
set-window-option -g mode-keys vi

 

  

配置文件修改完成后,能够 tmux kill-server 重启全部 tmux 进程,或者在 tmux 会话中使用 ⌃b : 进入控制台模式,输入 source-file ~/.tmux.conf 命令从新加载配置。

 

二、鼠标复制

tmux 下开启鼠标滚屏后,复制文本有两种方式:

  • 方法 1:使用 ⌃b z 进入窗格全屏模式,鼠标选择文本的同时按住 option 键 ,而后使用 ⌘c 进行复制;

  • 方法 2:开启 iTerm2 「在选择时复制」选项,便可实现自动选择复制。以下图:

 

 

 

三、tips

  • screen 是另一款终端复用命令行,但他没有 tmux 好看好用;

  • tmux 有个 bug ,致使从它启动的 vscode 的复制粘贴快捷键会失效;

  • iTerm2 能够经过 「Preferences -> Profiles -> Keyboard Behavior -> Left option key acts as +Esc」将键盘的左侧 option 键映射为 Meta 键

 

另外,最近看到两篇不错的 awksed 命令入门,感兴趣的同窗能够本身看一下。

https://www.cnblogs.com/kaiye/p/6275207.html

相关文章
相关标签/搜索