tmux
为什么要用tmux
tmux是什么?tmux是linux中一种管理窗口的程序。那么问题来了:Mac自带的Iterm2很好用啊。既支持多标签,也支持窗体内部Panel的分割,为什么还要用tmux?其实,多标签和分割窗体只是tmux的部分功能。用tmux的主要原因是它提供了一个窗体组随时存储和恢复的功能。看看以下的使用场景是否适合你:
tmux的基本概念
我们先来理解下tmux的几个元素。tmux的主要元素分为三层:
为了更好的理解,下面是三个元素在tmux中的具体展现。
可以看到Session总在tmux的左下角显示,通常会为他命名。例如我正在写博客,开了很多窗口那么我就会把这组窗口命名为blog方便之后的重连和切换。而Window也会在最下方以一种Tab的形式展现。每个window都有自己的需要,也会以当前活动进程的名字命名。而Pane就比较好理解,即把单个窗口分割成若干个小块后的元素。
安装
本文以Mac环境为例。Linux的方法类似Centos系列的可以用yum install tmux安装。
brew install tmux
安装完直接执行tmux可能会有以下报错,按照下面的步骤执行命令即可
$junyilu> tmux dyld: Library not loaded: /usr/local/lib/libevent-2.0.5.dylib Referenced from: /usr/local/Cellar/tmux/1.9a/bin/tmux Reason: image not found Trace/BPT trap: 5 $junyilu> brew link libevent Linking /usr/local/Cellar/libevent/2.0.22... Error: Could not symlink lib/pkgconfig/libevent.pc /usr/local/lib/pkgconfig is not writable. $junyilu> sudo chown junyilu /usr/local/lib/pkgconfig $junyilu> brew link libevent Linking /usr/local/Cellar/libevent/2.0.22... 25 symlinks created
tmux的基本操作
Prefix-Command前置操作:所有下面介绍的快捷键,都必须以前置操作开始。tmux默认的前置操作是CTRL+b。例如,我们想要新建一个窗体,就需要先在键盘上摁下CTRL+b,松开后再摁下n键。
下面所有的prefix均代表CTRL+b
操作 | 快捷键 |
---|---|
查看/切换session | prefix s |
离开Session | prefix d |
重命名当前Session | prefix $ |
操作 | 快捷键 |
---|---|
新建窗口 | prefix c |
切换到上一个活动的窗口 | prefix space |
关闭一个窗口 | prefix & |
使用窗口号切换 | prefix 窗口号 |
操作 | 快捷键 |
---|---|
切换到下一个窗格 | prefix o |
查看所有窗格的编号 | prefix q |
垂直拆分出一个新窗格 | prefix “ |
水平拆分出一个新窗格 | prefix % |
暂时把一个窗体放到最大 | prefix z |
tmux的一些个性化定制
默认的tmux风格比较朴素甚至有些丑陋。如果希望做一些美化和个性化配置的话,建议使用gpakosz的tmux配置。它的本质是一个tmux配置文件,实现了以下功能:
安装方式也很简单如下 (注意:如果想使用powerline美化需要先安装powerline,具体方法见之前的博文)
$ cd $ rm -rf .tmux $ git clone https://github.com/gpakosz/.tmux.git $ ln -s .tmux/.tmux.conf $ cp .tmux/.tmux.conf.local .