/m-tmux

tmux 配置

MIT LicenseMIT

tmux

说明

tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再使用更多的SSH会话来连接这台远程主机;其功能远不止于此。

地址

安装

基础组件

# mac
$ brew install tmux
$ brew install reattach-to-user-namespace

# ubuntu
$ sudo apt-get install tmux

配置

$ curl 'https://raw.githubusercontent.com/mxgnene01/m-tmux/master/tmux.conf' > ~/.tmux.conf

or

$ git clone git@github.com:mxgnene01/m-tmux.git
$ ln -s $PWD/m-tmux/tmux.conf $HOME/.tmux.conf

使用

tmux -> session -> window -> pane

设置新前缀

PREFIX = Ctrl-x

session

创建session

$ tmux new -s session_name

在tmux 中创建一个新的session

[PREFIX-:] new -s session_name

退出tmux

[PREFIX-d]

查看已有的session list

$ tmux ls

连接已有的session

$ tmux a

切换多个session

[PREFIX-s]

重命名session

[PREFIX-$]

window

创建window

$ tmux new-window -n code -t session_name
[PREFIX-c]

关闭一个window

[PREFIX-x]

切换下一个window/下一个

[PREFIX-n] or [PREFIX-ctrl+l] / [PREFIX-ctrl+n]

快速切换到上一个使用的窗口

[ctrl-x+x] ctrl 接两次的x键位

切换到对应的窗口

[PREFIX-1/2/3]

可视化选择切换窗口

[PREFIX-w]

pane - 面板

创建pane

# 原始 [PREFIX-%]和[PREFIX-"]
# 修改之后 垂直/水平分割窗口
[PREFIX-|] / [PREFIX--]

切换pane

[PREFIX-hjkl] pane之间移动

关闭pane

# 关闭一个面板, 要确认
[PREFIX-x]

# 或者
$ exit [面板里执行]

调整大小

[Ctrl-<>JK] < -左移, > - 右移,J - 向下,K - 向上

当前pane在新的window中打开

[PREFIX-!]

切换pane布局

[PREFIX-space]

多pane 命令同步

[PREFIX-:] set synchronize-panes on

复制粘贴

基本操作

# 进入复制模式
[PREFIX-[]
[PREFIX-PgUp]

=> 可以进行的操作
space/v    开始选择
hjkl       方向键移动
w/b        向前向后移动一个单词
fx/Fx      行内移动到下一个字符位置
ctrl-b/f   在缓冲区里面翻页
g/G        到缓冲区最顶/底端
/ ?        向下, 向上查找
n/N        查找后下一个, 上一个
Enter/y    复制
[PREFIX-]] 粘贴

自定义 for mac

# 安装 工具包,为了在tmux 中复制到系统剪切板
$ brew install reattach-to-user-namespace

# 进入复制模式
[PREFIX-[]
v  			开始选择
y			复制到系统剪切板

其他

修改.tmux.conf 之后reload

[PREFIX-r]

快速启动小脚本

#!/bin/bash

export HOSTNAME='MacBook-Pro'
tmux has-session -t local
if [ $? != 0 ]; then
    # local session
    tmux new-session -s local -n "~" -d
    tmux new-window -n code -t local
    tmux send-keys -t local:2 'j app_php' C-m
    tmux new-window -n jenkins -t local
    tmux send-keys -t local:3 'j python' C-m
fi

# tmux has-session -t f12
# if [ $? != 0 ]; then
#     tmux new-session -s f12 -n python -d
# fi

mxgnene01

Email: mxgnene01@gmail.com

Github: https://github.com/mxgnene01

2017-10-10 BeiJing