# vim /etc/tmux.confset -g prefix ^g # Ctrl+g 激活控制台,(默认Ctrl+b)unbind ^b # 解绑 Ctrl+bset-option -g status-utf8 on # 开启状态栏的UTF-8支持# cp modeset-window-option -g mode-keys vi # 复制模式中的默认键盘布局使用 vibind h select-pane -L # h 等于向左移动光标bind j select-pane -D # j 向下移动光标bind k select-pane -U # k 向上移动光标bind l select-pane -R # l 向右移动光标
tmux 默认使用的是Ctrl+b,之所以改成Ctrl+g是因为Ctrl+b在 Bash 环境里是向左移动光标. 现在 tmux 和 vim 操作一样了,复制时候也可以用 h、j、k、l 来移动光标。
使用 Tmux Tmux 完全依靠快捷键来使用它的功能,而刚才设置的Ctrl+g是这些功能的前提,例如打开一个时钟:Ctrl + g + t 按键的时候要先按Ctrl+g后松开Ctrl和g键后,快速按出t 打开 Tmux:
# tmux按 Ctrl+g 后松开在按 t 会在终端里出现一个数字时钟
说的是 tmux 的功能无非就是 Ctrl + g + 一些功能的键而已,所有的按键方式和上面的时钟例子一样。
获取 Tmux 帮助 按 Ctrl + g + ? (问号等于:Shift + /)会出现 Tmux 的帮助信息, 信息中 ‘bind-key’ 说的就是 Ctrl + g, 或者直接 man tmux。
Tmux 常用功能 1. 分割终端窗口
Ctrl+g + " 在光标当前所在窗口,横向分割出一个窗口Ctrl+g + % 在光标当前所在窗口,竖向分割出一个窗口Ctrl+g + h ............ ,跳转光标到左边的窗口Ctrl+g + j ............ ,跳转光标到下边的窗口Ctrl+g + k ............ ,跳转光标到上边的窗口Ctrl+g + j ............ ,跳转光标到右边的窗口Ctrl+g + ! 关闭所有分割出来的窗口Ctrl+g + x 关闭光标当前所在窗口。(或直接Ctrl+d)Ctrl+g + { 向前置换当前面板Ctrl+g + } 向后置换当前面板Ctrl+g + q 查询面板编号
创建新的窗口:
一个终端里开了多个小窗口,还是不够用?Ctrl+g + c 创建一个新的窗口Ctrl+g + p 切换到上一个窗口Ctrl+g + n 切换到下一个窗口Ctrl+g + w 列出目前所创建的窗口,能看到窗口编号,在按编号直接切换窗口,见图2Ctrl+g + 0-9 直接切换到指定编号的窗口Ctrl+g + , 修改当前窗口名字,见图3Ctrl+g + d 临时断开所有的会话,用命令# tmux attach 恢复会话
当你临时断开多个 tmux 会话时候,可以指定恢复某个会话:
# tmux ls #查看所有会话0: 4 windows (created Tue Jan 22 00:42:16 2013) [177x48]1: 1 windows (created Tue Jan 22 00:51:30 2013) [177x48]
恢复第一个会话:
# tmux a -t 0
看窗口历史记录 在小窗口做一些操作时候,输出内容太多,如何回滚呢?
Ctrl+g + PgUP 向上回滚Ctrl+g + PgDn 向下翻滚
在终端窗口里复制 在一个终端里分割了多个小窗口,你可能会在一个小窗口里复制一些代码或命令行到另外一个小窗口,这时你用小红点、鼠标、触摸板是无法胜任的。它把整个终端窗口当作是复制区域对象,而不隔离小窗口复制。
Ctrl+g [ 进入复制模式,移动光标到要复制文本区域后,按空格键开始选择要复制的内容, 利用h、j、k、l、$、0等(和vim中操作一样),按回车确认选中的内容。Ctrl+g ] 粘贴